zoned#
Usage: zoned <command> [<args>]
Where <command> is one of:
enum | Enumerate Zoned Namespaces on the system
info | Retrieve device info
idfy-ctrlr | Zoned Command Set specific identify-controller
idfy-ns | Zoned Command Set specific identify-namespace
changes | Retrieve the Changed Zone list
errors | Retrieve the Error-Log
read | Execute a Read Command
write | Execute a Write Command
append | Execute an Append Command
mgmt-open | Open a Zone
mgmt-close | Close a Zone
mgmt-finish | Finish a Zone
mgmt-reset | Reset a Zone
mgmt | Zone Management Send Command with custom action
report | Retrieve Zone Information
See 'zoned <command> --help' for the description of [<args>]
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
Enumerate Zoned Devices on the system#
zoned enum --help
Usage: zoned enum [<args>]
Enumerate Zoned Namespaces on the system
Where <args> include:
[ --uri uri ] ; System URI e.g. '10.9.8.1:8888'
[ --flags 0xNUM ] ; Command flags
With <args> for backend:
[ --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 'zoned --help' for other commands
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
Enumerate the storage devices usable by the library and the zoned
CLI on
the system:
zoned enum
xnvme_cli_enumeration:
- {uri: '/dev/nvme0n2', dtype: 0x2, nsid: 0x2, csi: 0x2, subnqn: 'nqn.2019-08.org.qemu:deadbeef'}
- {uri: '/dev/ng0n2', dtype: 0x2, nsid: 0x2, csi: 0x2, subnqn: 'nqn.2019-08.org.qemu:deadbeef'}
Retrieve essential device information#
zoned info --help
Usage: zoned info <uri> [<args>]
Retrieve device info
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
With <args> for backend:
[ --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'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'zoned --help' for other commands
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
Retrieve device properties and attributes for a specific device identified by
e.g. /dev/nvme0n1
:
zoned info /dev/nvme0n2
xnvme_dev:
xnvme_ident:
uri: '/dev/nvme0n2'
dtype: 0x2
nsid: 0x2
csi: 0x2
subnqn: 'nqn.2019-08.org.qemu:deadbeef'
xnvme_be:
admin: {id: 'nvme'}
sync: {id: 'nvme'}
async: {id: 'emu'}
attr: {name: 'linux'}
xnvme_opts:
be: 'linux'
mem: 'posix'
dev: 'FIX-ID-VS-MIXIN-NAME'
admin: 'nvme'
sync: 'nvme'
async: 'emu'
xnvme_geo:
type: XNVME_GEO_ZONED
npugrp: 1
npunit: 1
nzone: 256
nsect: 8192
nbytes: 4096
nbytes_oob: 0
tbytes: 8589934592
mdts_nbytes: 520192
lba_nbytes: 4096
lba_extended: 0
ssw: 12
pi_type: 0
pi_loc: 0
pi_format: 0
Retrieve Device Report#
zoned report --help
Usage: zoned report <uri> [<args>]
Retrieve Zone Information
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
[ --slba 0xNUM ] ; Start Logical Block Address
[ --limit NUM ] ; Restrict amount to 'NUM'
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --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'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --sync STRING ] ; xNVMe sync. command-interface, e.g. 'nvme', 'block'
[ --help ] ; Show usage / help
See 'zoned --help' for other commands
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
Retrieve the entire device report#
Retrieve a complete report of zone information for a specific device identified
by e.g. /dev/nvme0n1
:
zoned report /dev/nvme0n2
# Zone Information Report for lba: 0x0000000000000000, limit: 256
xnvme_znd_report:
report_nbytes: 16448
entries_nbytes: 16384
zd_nbytes: 64
zdext_nbytes: 0
zrent_nbytes: 64
zslba: 0x0000000000000000
zelba: 0x00000000001fe000
nzones: 256
nentries: 256
extended: 0
entries:
- {zslba: 0x0000000000000000, wp: 0x0000000000000000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000002000, wp: 0x0000000000002000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000004000, wp: 0x0000000000004000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000006000, wp: 0x0000000000006000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000008000, wp: 0x0000000000008000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000000a000, wp: 0x000000000000a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000000c000, wp: 0x000000000000c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000000e000, wp: 0x000000000000e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000010000, wp: 0x0000000000010000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000012000, wp: 0x0000000000012000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000014000, wp: 0x0000000000014000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000016000, wp: 0x0000000000016000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000018000, wp: 0x0000000000018000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000001a000, wp: 0x000000000001a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000001c000, wp: 0x000000000001c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000001e000, wp: 0x000000000001e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000020000, wp: 0x0000000000020000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000022000, wp: 0x0000000000022000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000024000, wp: 0x0000000000024000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000026000, wp: 0x0000000000026000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000028000, wp: 0x0000000000028000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000002a000, wp: 0x000000000002a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000002c000, wp: 0x000000000002c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000002e000, wp: 0x000000000002e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000030000, wp: 0x0000000000030000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000032000, wp: 0x0000000000032000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000034000, wp: 0x0000000000034000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000036000, wp: 0x0000000000036000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000038000, wp: 0x0000000000038000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000003a000, wp: 0x000000000003a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000003c000, wp: 0x000000000003c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000003e000, wp: 0x000000000003e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000040000, wp: 0x0000000000040000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000042000, wp: 0x0000000000042000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000044000, wp: 0x0000000000044000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000046000, wp: 0x0000000000046000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000048000, wp: 0x0000000000048000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000004a000, wp: 0x000000000004a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000004c000, wp: 0x000000000004c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000004e000, wp: 0x000000000004e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000050000, wp: 0x0000000000050000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000052000, wp: 0x0000000000052000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000054000, wp: 0x0000000000054000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000056000, wp: 0x0000000000056000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000058000, wp: 0x0000000000058000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000005a000, wp: 0x000000000005a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000005c000, wp: 0x000000000005c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000005e000, wp: 0x000000000005e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000060000, wp: 0x0000000000060000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000062000, wp: 0x0000000000062000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000064000, wp: 0x0000000000064000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000066000, wp: 0x0000000000066000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000068000, wp: 0x0000000000068000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000006a000, wp: 0x000000000006a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000006c000, wp: 0x000000000006c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000006e000, wp: 0x000000000006e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000070000, wp: 0x0000000000070000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000072000, wp: 0x0000000000072000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000074000, wp: 0x0000000000074000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000076000, wp: 0x0000000000076000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000078000, wp: 0x0000000000078000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000007a000, wp: 0x000000000007a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000007c000, wp: 0x000000000007c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000007e000, wp: 0x000000000007e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000080000, wp: 0x0000000000080000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000082000, wp: 0x0000000000082000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000084000, wp: 0x0000000000084000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000086000, wp: 0x0000000000086000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000088000, wp: 0x0000000000088000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000008a000, wp: 0x000000000008a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000008c000, wp: 0x000000000008c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000008e000, wp: 0x000000000008e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000090000, wp: 0x0000000000090000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000092000, wp: 0x0000000000092000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000094000, wp: 0x0000000000094000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000096000, wp: 0x0000000000096000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000098000, wp: 0x0000000000098000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000009a000, wp: 0x000000000009a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000009c000, wp: 0x000000000009c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000009e000, wp: 0x000000000009e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000a0000, wp: 0x00000000000a0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000a2000, wp: 0x00000000000a2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000a4000, wp: 0x00000000000a4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000a6000, wp: 0x00000000000a6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000a8000, wp: 0x00000000000a8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000aa000, wp: 0x00000000000aa000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ac000, wp: 0x00000000000ac000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ae000, wp: 0x00000000000ae000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000b0000, wp: 0x00000000000b0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000b2000, wp: 0x00000000000b2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000b4000, wp: 0x00000000000b4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000b6000, wp: 0x00000000000b6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000b8000, wp: 0x00000000000b8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ba000, wp: 0x00000000000ba000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000bc000, wp: 0x00000000000bc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000be000, wp: 0x00000000000be000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000c0000, wp: 0x00000000000c0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000c2000, wp: 0x00000000000c2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000c4000, wp: 0x00000000000c4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000c6000, wp: 0x00000000000c6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000c8000, wp: 0x00000000000c8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ca000, wp: 0x00000000000ca000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000cc000, wp: 0x00000000000cc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ce000, wp: 0x00000000000ce000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000d0000, wp: 0x00000000000d0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000d2000, wp: 0x00000000000d2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000d4000, wp: 0x00000000000d4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000d6000, wp: 0x00000000000d6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000d8000, wp: 0x00000000000d8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000da000, wp: 0x00000000000da000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000dc000, wp: 0x00000000000dc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000de000, wp: 0x00000000000de000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000e0000, wp: 0x00000000000e0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000e2000, wp: 0x00000000000e2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000e4000, wp: 0x00000000000e4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000e6000, wp: 0x00000000000e6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000e8000, wp: 0x00000000000e8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ea000, wp: 0x00000000000ea000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ec000, wp: 0x00000000000ec000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000ee000, wp: 0x00000000000ee000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000f0000, wp: 0x00000000000f0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000f2000, wp: 0x00000000000f2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000f4000, wp: 0x00000000000f4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000f6000, wp: 0x00000000000f6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000f8000, wp: 0x00000000000f8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000fa000, wp: 0x00000000000fa000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000fc000, wp: 0x00000000000fc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000000fe000, wp: 0x00000000000fe000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000100000, wp: 0x0000000000100000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000102000, wp: 0x0000000000102000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000104000, wp: 0x0000000000104000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000106000, wp: 0x0000000000106000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000108000, wp: 0x0000000000108000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000010a000, wp: 0x000000000010a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000010c000, wp: 0x000000000010c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000010e000, wp: 0x000000000010e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000110000, wp: 0x0000000000110000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000112000, wp: 0x0000000000112000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000114000, wp: 0x0000000000114000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000116000, wp: 0x0000000000116000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000118000, wp: 0x0000000000118000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000011a000, wp: 0x000000000011a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000011c000, wp: 0x000000000011c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000011e000, wp: 0x000000000011e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000120000, wp: 0x0000000000120000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000122000, wp: 0x0000000000122000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000124000, wp: 0x0000000000124000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000126000, wp: 0x0000000000126000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000128000, wp: 0x0000000000128000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000012a000, wp: 0x000000000012a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000012c000, wp: 0x000000000012c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000012e000, wp: 0x000000000012e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000130000, wp: 0x0000000000130000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000132000, wp: 0x0000000000132000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000134000, wp: 0x0000000000134000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000136000, wp: 0x0000000000136000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000138000, wp: 0x0000000000138000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000013a000, wp: 0x000000000013a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000013c000, wp: 0x000000000013c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000013e000, wp: 0x000000000013e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000140000, wp: 0x0000000000140000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000142000, wp: 0x0000000000142000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000144000, wp: 0x0000000000144000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000146000, wp: 0x0000000000146000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000148000, wp: 0x0000000000148000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000014a000, wp: 0x000000000014a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000014c000, wp: 0x000000000014c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000014e000, wp: 0x000000000014e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000150000, wp: 0x0000000000150000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000152000, wp: 0x0000000000152000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000154000, wp: 0x0000000000154000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000156000, wp: 0x0000000000156000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000158000, wp: 0x0000000000158000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000015a000, wp: 0x000000000015a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000015c000, wp: 0x000000000015c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000015e000, wp: 0x000000000015e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000160000, wp: 0x0000000000160000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000162000, wp: 0x0000000000162000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000164000, wp: 0x0000000000164000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000166000, wp: 0x0000000000166000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000168000, wp: 0x0000000000168000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000016a000, wp: 0x000000000016a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000016c000, wp: 0x000000000016c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000016e000, wp: 0x000000000016e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000170000, wp: 0x0000000000170000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000172000, wp: 0x0000000000172000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000174000, wp: 0x0000000000174000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000176000, wp: 0x0000000000176000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000178000, wp: 0x0000000000178000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000017a000, wp: 0x000000000017a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000017c000, wp: 0x000000000017c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000017e000, wp: 0x000000000017e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000180000, wp: 0x0000000000180000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000182000, wp: 0x0000000000182000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000184000, wp: 0x0000000000184000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000186000, wp: 0x0000000000186000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000188000, wp: 0x0000000000188000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000018a000, wp: 0x000000000018a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000018c000, wp: 0x000000000018c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000018e000, wp: 0x000000000018e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000190000, wp: 0x0000000000190000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000192000, wp: 0x0000000000192000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000194000, wp: 0x0000000000194000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000196000, wp: 0x0000000000196000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000198000, wp: 0x0000000000198000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000019a000, wp: 0x000000000019a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000019c000, wp: 0x000000000019c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000019e000, wp: 0x000000000019e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001a0000, wp: 0x00000000001a0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001a2000, wp: 0x00000000001a2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001a4000, wp: 0x00000000001a4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001a6000, wp: 0x00000000001a6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001a8000, wp: 0x00000000001a8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001aa000, wp: 0x00000000001aa000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ac000, wp: 0x00000000001ac000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ae000, wp: 0x00000000001ae000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001b0000, wp: 0x00000000001b0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001b2000, wp: 0x00000000001b2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001b4000, wp: 0x00000000001b4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001b6000, wp: 0x00000000001b6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001b8000, wp: 0x00000000001b8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ba000, wp: 0x00000000001ba000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001bc000, wp: 0x00000000001bc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001be000, wp: 0x00000000001be000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001c0000, wp: 0x00000000001c0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001c2000, wp: 0x00000000001c2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001c4000, wp: 0x00000000001c4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001c6000, wp: 0x00000000001c6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001c8000, wp: 0x00000000001c8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ca000, wp: 0x00000000001ca000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001cc000, wp: 0x00000000001cc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ce000, wp: 0x00000000001ce000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001d0000, wp: 0x00000000001d0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001d2000, wp: 0x00000000001d2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001d4000, wp: 0x00000000001d4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001d6000, wp: 0x00000000001d6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001d8000, wp: 0x00000000001d8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001da000, wp: 0x00000000001da000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001dc000, wp: 0x00000000001dc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001de000, wp: 0x00000000001de000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001e0000, wp: 0x00000000001e0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001e2000, wp: 0x00000000001e2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001e4000, wp: 0x00000000001e4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001e6000, wp: 0x00000000001e6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001e8000, wp: 0x00000000001e8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ea000, wp: 0x00000000001ea000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ec000, wp: 0x00000000001ec000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001ee000, wp: 0x00000000001ee000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001f0000, wp: 0x00000000001f0000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001f2000, wp: 0x00000000001f2000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001f4000, wp: 0x00000000001f4000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001f6000, wp: 0x00000000001f6000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001f8000, wp: 0x00000000001f8000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001fa000, wp: 0x00000000001fa000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001fc000, wp: 0x00000000001fc000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x00000000001fe000, wp: 0x00000000001fe000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
Retrieve a subset of the device report#
zoned report /dev/nvme0n2 --slba 0x0 --limit 10
# Zone Information Report for lba: 0x0000000000000000, limit: 10
xnvme_znd_report:
report_nbytes: 704
entries_nbytes: 640
zd_nbytes: 64
zdext_nbytes: 0
zrent_nbytes: 64
zslba: 0x0000000000000000
zelba: 0x0000000000012000
nzones: 256
nentries: 10
extended: 0
entries:
- {zslba: 0x0000000000000000, wp: 0x0000000000000000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000002000, wp: 0x0000000000002000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000004000, wp: 0x0000000000004000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000006000, wp: 0x0000000000006000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000008000, wp: 0x0000000000008000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000000a000, wp: 0x000000000000a000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000000c000, wp: 0x000000000000c000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x000000000000e000, wp: 0x000000000000e000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000010000, wp: 0x0000000000010000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
- {zslba: 0x0000000000012000, wp: 0x0000000000012000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
Report Changes#
zoned changes --help
Usage: zoned changes <uri> [<args>]
Retrieve the Changed Zone list
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --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'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'zoned --help' for other commands
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
In relation to the above commands, then you can ask the device about which
zones has changed information since the last time you retrieve the report. You
do this using the changes
sub-command:
zoned changes /dev/nvme0n2
# Retrieving the Changed Zone List
# Zoned Changes log page is an optional feature
# This devices does not support it; expect failure
# ERR: 'xnvme_znd_log_changes_from_dev()': {errno: 0, msg: 'Success'}
Report Errors#
zoned errors --help
Usage: zoned errors <uri> [<args>]
Retrieve the Error-Log
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --data-output FILE ] ; Path to data output-file
With <args> for backend:
[ --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'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --help ] ; Show usage / help
See 'zoned --help' for other commands
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
Get the errors logged on the given device:
zoned errors /dev/nvme0n2
# Error-Information-Log has 0 valid entries
xnvme_spec_log_erri:
- {ecnt: 0, sqid: 0, cid: 0, status: 0, eloc: 0, lba: 0, nsid: 0, ven_si: 0, trtype: 0, cmd_si: 0, trtype_si: 0}
Zone Management#
zoned mgmt --help
Usage: zoned mgmt <uri> [<args>]
Zone Management Send Command with custom action
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
--slba 0xNUM ; Start Logical Block Address
--zsa 0xNUM ; Zone Send Action: Close=0x1, Finish=0x2, Open=0x3, Reset=0x4, Offline=0x5, Zone Descriptor Extension=0x10
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --all ] ; Select / Affect all
With <args> for backend:
[ --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'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --sync STRING ] ; xNVMe sync. command-interface, e.g. 'nvme', 'block'
[ --help ] ; Show usage / help
See 'zoned --help' for other commands
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
Explicitly controlling the Zone Management action:
zoned mgmt-reset /dev/nvme0n2 --slba 0x0
# MGMT: zslba: 0x0000000000000000, zsa: 0x4, str: ZND_CMD_MGMT_SEND_RESET
Reading#
zoned read /dev/nvme0n2 --slba 0x0 --nlb 0
# Reading nsid: 0x2, slba: 0x0000000000000000, nlb: 0
# Alloc/clear dbuf, dbuf_nbytes: 4096
# Sending the command...
Writing#
zoned --help
Usage: zoned <command> [<args>]
Where <command> is one of:
enum | Enumerate Zoned Namespaces on the system
info | Retrieve device info
idfy-ctrlr | Zoned Command Set specific identify-controller
idfy-ns | Zoned Command Set specific identify-namespace
changes | Retrieve the Changed Zone list
errors | Retrieve the Error-Log
read | Execute a Read Command
write | Execute a Write Command
append | Execute an Append Command
mgmt-open | Open a Zone
mgmt-close | Close a Zone
mgmt-finish | Finish a Zone
mgmt-reset | Reset a Zone
mgmt | Zone Management Send Command with custom action
report | Retrieve Zone Information
See 'zoned <command> --help' for the description of [<args>]
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
Note, for a write to success it has to write at the write-pointer of an open or empty zone. To use that, we reset the zone before writing.
zoned mgmt-reset /dev/nvme0n2 --slba 0x0
zoned write /dev/nvme0n2 --slba 0x0 --nlb 0
# MGMT: zslba: 0x0000000000000000, zsa: 0x4, str: ZND_CMD_MGMT_SEND_RESET
# Writing nsid: 0x2, slba: 0x0000000000000000, nlb: 0
# Alloc/fill dbuf, dbuf_nbytes: 4096
# Sending the command...
Writing - with append#
zoned append --help
Usage: zoned append <uri> [<args>]
Execute an Append Command
Positional arguments:
uri ; Device URI e.g. '/dev/nvme0n1', '0000:01:00.1', '10.9.8.1.8888', '\\.\PhysicalDrive1'
Where <args> include:
--slba 0xNUM ; Start Logical Block Address
--nlb NUM ; Number of LBAs (NOTE: zero-based value)
[ --nsid 0xNUM ] ; Namespace Identifier for Command Construction
[ --data-input FILE ] ; Path to data input-file
[ --meta-input FILE ] ; Path to meta input-file
With <args> for backend:
[ --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'
[ --dev-nsid 0xNUM ] ; Namespace Identifier for Device Handle
[ --admin STRING ] ; xNVMe admin. command-interface, e.g. 'nvme', 'block'
[ --mem STRING ] ; xNVMe buffer/memory manager
[ --direct NUM ] ; Bypass layers
[ --sync STRING ] ; xNVMe sync. command-interface, e.g. 'nvme', 'block'
[ --help ] ; Show usage / help
See 'zoned --help' for other commands
Zoned Namespace Utility -- ver: {major: 0, minor: 7, patch: 5}
When writing with append then we no longer need to respect the write-pointer. However, we still need to ensure that the Zone is not read-only, offline, or full.
Write using append:
zoned mgmt-reset /dev/nvme0n2 --slba 0x0
zoned report /dev/nvme0n2 --slba 0x0 --limit 1
zoned append /dev/nvme0n2 --slba 0x0 --nlb 0
zoned append /dev/nvme0n2 --slba 0x0 --nlb 0
zoned append /dev/nvme0n2 --slba 0x0 --nlb 0
zoned report /dev/nvme0n2 --slba 0x0 --limit 1
# MGMT: zslba: 0x0000000000000000, zsa: 0x4, str: ZND_CMD_MGMT_SEND_RESET
# Zone Information Report for lba: 0x0000000000000000, limit: 1
xnvme_znd_report:
report_nbytes: 128
entries_nbytes: 64
zd_nbytes: 64
zdext_nbytes: 0
zrent_nbytes: 64
zslba: 0x0000000000000000
zelba: 0x0000000000000000
nzones: 256
nentries: 1
extended: 0
entries:
- {zslba: 0x0000000000000000, wp: 0x0000000000000000, zcap: 7168, zt: 0x2, zs: ZND_STATE_EMPTY, za: '0b00000000'}
# Zone Append nlb: 0 to zslba: 0x0000000000000000
# Allocating dbuf
# Appended to slba: 0x0000000000000000
# Zone Append nlb: 0 to zslba: 0x0000000000000000
# Allocating dbuf
# Appended to slba: 0x0000000000000001
# Zone Append nlb: 0 to zslba: 0x0000000000000000
# Allocating dbuf
# Appended to slba: 0x0000000000000002
# Zone Information Report for lba: 0x0000000000000000, limit: 1
xnvme_znd_report:
report_nbytes: 128
entries_nbytes: 64
zd_nbytes: 64
zdext_nbytes: 0
zrent_nbytes: 64
zslba: 0x0000000000000000
zelba: 0x0000000000000000
nzones: 256
nentries: 1
extended: 0
entries:
- {zslba: 0x0000000000000000, wp: 0x0000000000000003, zcap: 7168, zt: 0x2, zs: ZND_STATE_IOPEN, za: '0b00000000'}