From dc597ce8df5ae6efd2728a2d7ba7d92486028f79 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 2 Jul 2021 22:40:30 +0200 Subject: Adding upstream version 1.12. Signed-off-by: Daniel Baumann --- .gitignore | 18 + CONTRIBUTING.md | 20 + Documentation/Makefile | 265 + Documentation/asciidoc.conf | 91 + Documentation/asciidoctor-extensions.rb | 29 + Documentation/cmds-main.txt | 137 + Documentation/install-webdoc.sh | 39 + Documentation/manpage-base.xsl | 35 + Documentation/manpage-normal.xsl | 13 + Documentation/nvme-admin-passthru.1 | 171 + Documentation/nvme-admin-passthru.html | 989 ++++ Documentation/nvme-admin-passthru.txt | 128 + Documentation/nvme-ana-log.1 | 77 + Documentation/nvme-ana-log.html | 819 +++ Documentation/nvme-ana-log.txt | 41 + Documentation/nvme-attach-ns.1 | 75 + Documentation/nvme-attach-ns.html | 813 +++ Documentation/nvme-attach-ns.txt | 39 + Documentation/nvme-changed-ns-list-log.1 | 106 + Documentation/nvme-changed-ns-list-log.html | 842 +++ Documentation/nvme-changed-ns-list-log.txt | 58 + Documentation/nvme-compare.1 | 210 + Documentation/nvme-compare.html | 1063 ++++ Documentation/nvme-compare.txt | 148 + Documentation/nvme-connect-all.1 | 253 + Documentation/nvme-connect-all.html | 1118 ++++ Documentation/nvme-connect-all.txt | 194 + Documentation/nvme-connect.1 | 220 + Documentation/nvme-connect.html | 1077 ++++ Documentation/nvme-connect.txt | 157 + Documentation/nvme-create-ns.1 | 102 + Documentation/nvme-create-ns.html | 888 +++ Documentation/nvme-create-ns.txt | 74 + Documentation/nvme-delete-ns.1 | 53 + Documentation/nvme-delete-ns.html | 802 +++ Documentation/nvme-delete-ns.txt | 34 + Documentation/nvme-dera-stat.1 | 71 + Documentation/nvme-dera-stat.html | 798 +++ Documentation/nvme-dera-stat.txt | 38 + Documentation/nvme-detach-ns.1 | 57 + Documentation/nvme-detach-ns.html | 813 +++ Documentation/nvme-detach-ns.txt | 37 + Documentation/nvme-device-self-test.1 | 101 + Documentation/nvme-device-self-test.html | 840 +++ Documentation/nvme-device-self-test.txt | 55 + Documentation/nvme-dir-receive.1 | 235 + Documentation/nvme-dir-receive.html | 975 ++++ Documentation/nvme-dir-receive.txt | 118 + Documentation/nvme-dir-send.1 | 241 + Documentation/nvme-dir-send.html | 988 ++++ Documentation/nvme-dir-send.txt | 124 + Documentation/nvme-disconnect-all.1 | 69 + Documentation/nvme-disconnect-all.html | 798 +++ Documentation/nvme-disconnect-all.txt | 34 + Documentation/nvme-disconnect.1 | 101 + Documentation/nvme-disconnect.html | 846 +++ Documentation/nvme-disconnect.txt | 56 + Documentation/nvme-discover.1 | 261 + Documentation/nvme-discover.html | 1129 ++++ Documentation/nvme-discover.txt | 208 + Documentation/nvme-dsm.1 | 97 + Documentation/nvme-dsm.html | 896 ++++ Documentation/nvme-dsm.txt | 82 + Documentation/nvme-effects-log.1 | 108 + Documentation/nvme-effects-log.html | 854 +++ Documentation/nvme-effects-log.txt | 62 + Documentation/nvme-endurance-log.1 | 106 + Documentation/nvme-endurance-log.html | 841 +++ Documentation/nvme-endurance-log.txt | 56 + Documentation/nvme-error-log.1 | 112 + Documentation/nvme-error-log.html | 856 +++ Documentation/nvme-error-log.txt | 65 + Documentation/nvme-flush.1 | 51 + Documentation/nvme-flush.html | 803 +++ Documentation/nvme-flush.txt | 34 + Documentation/nvme-format.1 | 225 + Documentation/nvme-format.html | 1045 ++++ Documentation/nvme-format.txt | 157 + Documentation/nvme-fw-commit.1 | 147 + Documentation/nvme-fw-commit.html | 908 ++++ Documentation/nvme-fw-commit.txt | 93 + Documentation/nvme-fw-download.1 | 88 + Documentation/nvme-fw-download.html | 859 +++ Documentation/nvme-fw-download.txt | 68 + Documentation/nvme-fw-log.1 | 106 + Documentation/nvme-fw-log.html | 838 +++ Documentation/nvme-fw-log.txt | 58 + Documentation/nvme-gen-hostnqn.1 | 48 + Documentation/nvme-gen-hostnqn.html | 788 +++ Documentation/nvme-gen-hostnqn.txt | 29 + Documentation/nvme-get-feature.1 | 214 + Documentation/nvme-get-feature.html | 961 ++++ Documentation/nvme-get-feature.txt | 118 + Documentation/nvme-get-log.1 | 142 + Documentation/nvme-get-log.html | 925 ++++ Documentation/nvme-get-log.txt | 98 + Documentation/nvme-get-ns-id.1 | 67 + Documentation/nvme-get-ns-id.html | 797 +++ Documentation/nvme-get-ns-id.txt | 32 + Documentation/nvme-get-property.1 | 123 + Documentation/nvme-get-property.html | 846 +++ Documentation/nvme-get-property.txt | 62 + Documentation/nvme-help.1 | 69 + Documentation/nvme-help.html | 801 +++ Documentation/nvme-help.txt | 33 + Documentation/nvme-huawei-id-ctrl.1 | 97 + Documentation/nvme-huawei-id-ctrl.html | 862 +++ Documentation/nvme-huawei-id-ctrl.txt | 66 + Documentation/nvme-huawei-list.1 | 54 + Documentation/nvme-huawei-list.html | 800 +++ Documentation/nvme-huawei-list.txt | 31 + Documentation/nvme-id-ctrl.1 | 196 + Documentation/nvme-id-ctrl.html | 913 ++++ Documentation/nvme-id-ctrl.txt | 113 + Documentation/nvme-id-ns.1 | 229 + Documentation/nvme-id-ns.html | 962 ++++ Documentation/nvme-id-ns.txt | 144 + Documentation/nvme-id-nvmset.1 | 142 + Documentation/nvme-id-nvmset.html | 858 +++ Documentation/nvme-id-nvmset.txt | 73 + Documentation/nvme-intel-id-ctrl.1 | 95 + Documentation/nvme-intel-id-ctrl.html | 856 +++ Documentation/nvme-intel-id-ctrl.txt | 63 + Documentation/nvme-intel-internal-log.1 | 120 + Documentation/nvme-intel-internal-log.html | 850 +++ Documentation/nvme-intel-internal-log.txt | 74 + Documentation/nvme-intel-lat-stats.1 | 100 + Documentation/nvme-intel-lat-stats.html | 835 +++ Documentation/nvme-intel-lat-stats.txt | 53 + Documentation/nvme-intel-market-name.1 | 74 + Documentation/nvme-intel-market-name.html | 816 +++ Documentation/nvme-intel-market-name.txt | 43 + Documentation/nvme-intel-smart-log-add.1 | 109 + Documentation/nvme-intel-smart-log-add.html | 857 +++ Documentation/nvme-intel-smart-log-add.txt | 65 + Documentation/nvme-intel-temp-stats.1 | 97 + Documentation/nvme-intel-temp-stats.html | 825 +++ Documentation/nvme-intel-temp-stats.txt | 51 + Documentation/nvme-io-passthru.1 | 133 + Documentation/nvme-io-passthru.html | 971 ++++ Documentation/nvme-io-passthru.txt | 116 + Documentation/nvme-list-ctrl.1 | 70 + Documentation/nvme-list-ctrl.html | 819 +++ Documentation/nvme-list-ctrl.txt | 46 + Documentation/nvme-list-ns.1 | 61 + Documentation/nvme-list-ns.html | 821 +++ Documentation/nvme-list-ns.txt | 44 + Documentation/nvme-list-subsys.1 | 126 + Documentation/nvme-list-subsys.html | 857 +++ Documentation/nvme-list-subsys.txt | 85 + Documentation/nvme-list.1 | 62 + Documentation/nvme-list.html | 819 +++ Documentation/nvme-list.txt | 42 + Documentation/nvme-lnvm-create.1 | 100 + Documentation/nvme-lnvm-create.html | 865 +++ Documentation/nvme-lnvm-create.txt | 60 + Documentation/nvme-lnvm-diag-bbtbl.1 | 117 + Documentation/nvme-lnvm-diag-bbtbl.html | 864 +++ Documentation/nvme-lnvm-diag-bbtbl.txt | 65 + Documentation/nvme-lnvm-diag-set-bbtbl.1 | 99 + Documentation/nvme-lnvm-diag-set-bbtbl.html | 869 +++ Documentation/nvme-lnvm-diag-set-bbtbl.txt | 63 + Documentation/nvme-lnvm-factory.1 | 109 + Documentation/nvme-lnvm-factory.html | 857 +++ Documentation/nvme-lnvm-factory.txt | 54 + Documentation/nvme-lnvm-id-ns.1 | 88 + Documentation/nvme-lnvm-id-ns.html | 850 +++ Documentation/nvme-lnvm-id-ns.txt | 49 + Documentation/nvme-lnvm-info.1 | 48 + Documentation/nvme-lnvm-info.html | 786 +++ Documentation/nvme-lnvm-info.txt | 27 + Documentation/nvme-lnvm-init.1 | 97 + Documentation/nvme-lnvm-init.html | 833 +++ Documentation/nvme-lnvm-init.txt | 44 + Documentation/nvme-lnvm-list.1 | 48 + Documentation/nvme-lnvm-list.html | 786 +++ Documentation/nvme-lnvm-list.txt | 27 + Documentation/nvme-lnvm-remove.1 | 53 + Documentation/nvme-lnvm-remove.html | 800 +++ Documentation/nvme-lnvm-remove.txt | 32 + Documentation/nvme-netapp-ontapdevices.1 | 74 + Documentation/nvme-netapp-ontapdevices.html | 810 +++ Documentation/nvme-netapp-ontapdevices.txt | 35 + Documentation/nvme-netapp-smdevices.1 | 74 + Documentation/nvme-netapp-smdevices.html | 816 +++ Documentation/nvme-netapp-smdevices.txt | 37 + Documentation/nvme-ns-descs.1 | 115 + Documentation/nvme-ns-descs.html | 863 +++ Documentation/nvme-ns-descs.txt | 74 + Documentation/nvme-ns-rescan.1 | 67 + Documentation/nvme-ns-rescan.html | 455 ++ Documentation/nvme-ns-rescan.txt | 32 + Documentation/nvme-read.1 | 186 + Documentation/nvme-read.html | 1040 ++++ Documentation/nvme-read.txt | 137 + Documentation/nvme-reset.1 | 67 + Documentation/nvme-reset.html | 801 +++ Documentation/nvme-reset.txt | 32 + Documentation/nvme-resv-acquire.1 | 177 + Documentation/nvme-resv-acquire.html | 954 ++++ Documentation/nvme-resv-acquire.txt | 92 + Documentation/nvme-resv-register.1 | 153 + Documentation/nvme-resv-register.html | 944 ++++ Documentation/nvme-resv-register.txt | 93 + Documentation/nvme-resv-release.1 | 165 + Documentation/nvme-resv-release.html | 937 ++++ Documentation/nvme-resv-release.txt | 84 + Documentation/nvme-resv-report.1 | 80 + Documentation/nvme-resv-report.html | 861 +++ Documentation/nvme-resv-report.txt | 63 + Documentation/nvme-sanitize-log.1 | 144 + Documentation/nvme-sanitize-log.html | 888 +++ Documentation/nvme-sanitize-log.txt | 82 + Documentation/nvme-sanitize.1 | 105 + Documentation/nvme-sanitize.html | 903 ++++ Documentation/nvme-sanitize.txt | 93 + Documentation/nvme-security-recv.1 | 91 + Documentation/nvme-security-recv.html | 893 +++ Documentation/nvme-security-recv.txt | 80 + Documentation/nvme-security-send.1 | 83 + Documentation/nvme-security-send.html | 879 +++ Documentation/nvme-security-send.txt | 72 + Documentation/nvme-self-test-log.1 | 121 + Documentation/nvme-self-test-log.html | 836 +++ Documentation/nvme-self-test-log.txt | 61 + Documentation/nvme-set-feature.1 | 124 + Documentation/nvme-set-feature.html | 889 +++ Documentation/nvme-set-feature.txt | 79 + Documentation/nvme-set-property.1 | 57 + Documentation/nvme-set-property.html | 812 +++ Documentation/nvme-set-property.txt | 36 + Documentation/nvme-show-hostnqn.1 | 48 + Documentation/nvme-show-hostnqn.html | 792 +++ Documentation/nvme-show-hostnqn.txt | 29 + Documentation/nvme-show-regs.1 | 123 + Documentation/nvme-show-regs.html | 855 +++ Documentation/nvme-show-regs.txt | 63 + Documentation/nvme-smart-log.1 | 112 + Documentation/nvme-smart-log.html | 853 +++ Documentation/nvme-smart-log.txt | 65 + Documentation/nvme-subsystem-reset.1 | 67 + Documentation/nvme-subsystem-reset.html | 797 +++ Documentation/nvme-subsystem-reset.txt | 32 + Documentation/nvme-telemetry-log.1 | 87 + Documentation/nvme-telemetry-log.html | 845 +++ Documentation/nvme-telemetry-log.txt | 54 + .../nvme-toshiba-clear-pcie-correctable-errors.1 | 66 + ...nvme-toshiba-clear-pcie-correctable-errors.html | 797 +++ .../nvme-toshiba-clear-pcie-correctable-errors.txt | 34 + Documentation/nvme-toshiba-vs-internal-log.1 | 108 + Documentation/nvme-toshiba-vs-internal-log.html | 844 +++ Documentation/nvme-toshiba-vs-internal-log.txt | 64 + Documentation/nvme-toshiba-vs-smart-add-log.1 | 106 + Documentation/nvme-toshiba-vs-smart-add-log.html | 846 +++ Documentation/nvme-toshiba-vs-smart-add-log.txt | 64 + Documentation/nvme-transcend-badblock.1 | 71 + Documentation/nvme-transcend-badblock.html | 803 +++ Documentation/nvme-transcend-badblock.txt | 37 + Documentation/nvme-transcend-healthvalue.1 | 71 + Documentation/nvme-transcend-healthvalue.html | 803 +++ Documentation/nvme-transcend-healthvalue.txt | 37 + .../nvme-virtium-save-smart-to-vtview-log.1 | 138 + .../nvme-virtium-save-smart-to-vtview-log.html | 883 +++ .../nvme-virtium-save-smart-to-vtview-log.txt | 84 + Documentation/nvme-virtium-show-identify.1 | 71 + Documentation/nvme-virtium-show-identify.html | 801 +++ Documentation/nvme-virtium-show-identify.txt | 39 + Documentation/nvme-wdc-cap-diag.1 | 163 + Documentation/nvme-wdc-cap-diag.html | 859 +++ Documentation/nvme-wdc-cap-diag.txt | 64 + Documentation/nvme-wdc-clear-assert-dump.1 | 71 + Documentation/nvme-wdc-clear-assert-dump.html | 805 +++ Documentation/nvme-wdc-clear-assert-dump.txt | 39 + Documentation/nvme-wdc-clear-fw-activate-history.1 | 71 + .../nvme-wdc-clear-fw-activate-history.html | 804 +++ .../nvme-wdc-clear-fw-activate-history.txt | 38 + Documentation/nvme-wdc-clear-pcie-corr.1 | 71 + Documentation/nvme-wdc-clear-pcie-corr.html | 806 +++ .../nvme-wdc-clear-pcie-correctable-errors.1 | 71 + .../nvme-wdc-clear-pcie-correctable-errors.html | 802 +++ .../nvme-wdc-clear-pcie-correctable-errors.txt | 40 + Documentation/nvme-wdc-drive-essentials.1 | 95 + Documentation/nvme-wdc-drive-essentials.html | 828 +++ Documentation/nvme-wdc-drive-essentials.txt | 48 + Documentation/nvme-wdc-drive-log.1 | 116 + Documentation/nvme-wdc-drive-log.html | 832 +++ Documentation/nvme-wdc-drive-log.txt | 52 + Documentation/nvme-wdc-drive-resize.1 | 76 + Documentation/nvme-wdc-drive-resize.html | 813 +++ Documentation/nvme-wdc-drive-resize.txt | 42 + Documentation/nvme-wdc-get-crash-dump.1 | 116 + Documentation/nvme-wdc-get-crash-dump.html | 833 +++ Documentation/nvme-wdc-get-crash-dump.txt | 52 + Documentation/nvme-wdc-get-drive-status.1 | 122 + Documentation/nvme-wdc-get-drive-status.html | 839 +++ Documentation/nvme-wdc-get-drive-status.txt | 60 + Documentation/nvme-wdc-get-pfail-dump.1 | 116 + Documentation/nvme-wdc-get-pfail-dump.html | 835 +++ Documentation/nvme-wdc-get-pfail-dump.txt | 54 + Documentation/nvme-wdc-id-ctrl.1 | 98 + Documentation/nvme-wdc-id-ctrl.html | 863 +++ Documentation/nvme-wdc-id-ctrl.txt | 67 + Documentation/nvme-wdc-log-page-directory.1 | 79 + Documentation/nvme-wdc-log-page-directory.html | 819 +++ Documentation/nvme-wdc-log-page-directory.txt | 43 + Documentation/nvme-wdc-namespace-resize.1 | 115 + Documentation/nvme-wdc-namespace-resize.html | 841 +++ Documentation/nvme-wdc-namespace-resize.txt | 56 + Documentation/nvme-wdc-purge-monitor.1 | 126 + Documentation/nvme-wdc-purge-monitor.html | 844 +++ Documentation/nvme-wdc-purge-monitor.txt | 63 + Documentation/nvme-wdc-purge.1 | 73 + Documentation/nvme-wdc-purge.html | 802 +++ Documentation/nvme-wdc-purge.txt | 40 + Documentation/nvme-wdc-smart-add-log.1 | 496 ++ Documentation/nvme-wdc-smart-add-log.html | 1139 ++++ Documentation/nvme-wdc-vs-drive-info.1 | 58 + Documentation/nvme-wdc-vs-drive-info.html | 794 +++ Documentation/nvme-wdc-vs-drive-info.txt | 42 + .../nvme-wdc-vs-error-reason-identifier.1 | 102 + .../nvme-wdc-vs-error-reason-identifier.html | 843 +++ .../nvme-wdc-vs-error-reason-identifier.txt | 56 + Documentation/nvme-wdc-vs-fw-activate-history.1 | 154 + Documentation/nvme-wdc-vs-fw-activate-history.html | 875 +++ Documentation/nvme-wdc-vs-fw-activate-history.txt | 76 + Documentation/nvme-wdc-vs-internal-log.1 | 255 + Documentation/nvme-wdc-vs-internal-log.html | 957 ++++ Documentation/nvme-wdc-vs-internal-log.txt | 111 + Documentation/nvme-wdc-vs-nand-stats.1 | 78 + Documentation/nvme-wdc-vs-nand-stats.html | 817 +++ Documentation/nvme-wdc-vs-nand-stats.txt | 45 + Documentation/nvme-wdc-vs-smart-add-log.1 | 496 ++ Documentation/nvme-wdc-vs-smart-add-log.html | 1136 ++++ Documentation/nvme-wdc-vs-smart-add-log.txt | 268 + .../nvme-wdc-vs-telemetry-controller-option.1 | 130 + .../nvme-wdc-vs-telemetry-controller-option.html | 860 +++ .../nvme-wdc-vs-telemetry-controller-option.txt | 63 + Documentation/nvme-write-uncor.1 | 63 + Documentation/nvme-write-uncor.html | 823 +++ Documentation/nvme-write-uncor.txt | 40 + Documentation/nvme-write-zeroes.1 | 155 + Documentation/nvme-write-zeroes.html | 944 ++++ Documentation/nvme-write-zeroes.txt | 87 + Documentation/nvme-write.1 | 196 + Documentation/nvme-write.html | 1062 ++++ Documentation/nvme-write.txt | 145 + Documentation/nvme.1 | 312 ++ Documentation/nvme.html | 1197 +++++ Documentation/nvme.txt | 60 + LICENSE | 340 ++ Makefile | 235 + NVME-VERSION-GEN | 42 + README.md | 215 + cmd.h | 10 + cmd_handler.h | 108 + common.h | 12 + completions/README | 120 + completions/_nvme | 659 +++ completions/bash-nvme-completion.sh | 238 + define_cmd.h | 19 + etc/discovery.conf.in | 4 + fabrics.c | 1626 ++++++ fabrics.h | 13 + linux/lightnvm.h | 174 + linux/nvme.h | 1418 +++++ linux/nvme_ioctl.h | 91 + nvme-builtin.h | 81 + nvme-filters.c | 88 + nvme-ioctl.c | 879 +++ nvme-ioctl.h | 155 + nvme-lightnvm.c | 700 +++ nvme-lightnvm.h | 329 ++ nvme-models.c | 338 ++ nvme-models.h | 6 + nvme-print.c | 4706 ++++++++++++++++ nvme-print.h | 67 + nvme-status.c | 167 + nvme-status.h | 14 + nvme-topology.c | 608 +++ nvme.c | 4841 +++++++++++++++++ nvme.control.in | 9 + nvme.h | 110 + nvme.spec.in | 71 + .../dracut-conf/70-nvmf-autoconnect.conf.in | 1 + .../systemd/nvmefc-boot-connections.service | 10 + nvmf-autoconnect/systemd/nvmf-autoconnect.service | 12 + nvmf-autoconnect/systemd/nvmf-connect.target | 2 + nvmf-autoconnect/systemd/nvmf-connect@.service | 14 + .../udev-rules/70-nvmf-autoconnect.rules | 19 + .../udev-rules/71-nvmf-iopolicy-netapp.rules | 3 + plugin.c | 188 + plugin.h | 36 + plugins/dera/dera-nvme.c | 211 + plugins/dera/dera-nvme.h | 17 + plugins/huawei/huawei-nvme.c | 374 ++ plugins/huawei/huawei-nvme.h | 18 + plugins/intel/intel-nvme.c | 1316 +++++ plugins/intel/intel-nvme.h | 23 + plugins/lnvm/lnvm-nvme.c | 436 ++ plugins/lnvm/lnvm-nvme.h | 27 + plugins/memblaze/memblaze-nvme.c | 759 +++ plugins/memblaze/memblaze-nvme.h | 27 + plugins/memblaze/memblaze-utils.h | 164 + plugins/micron/micron-nvme.c | 1180 ++++ plugins/micron/micron-nvme.h | 21 + plugins/netapp/netapp-nvme.c | 639 +++ plugins/netapp/netapp-nvme.h | 18 + plugins/scaleflux/sfx-nvme.c | 873 +++ plugins/scaleflux/sfx-nvme.h | 25 + plugins/seagate/seagate-diag.h | 269 + plugins/seagate/seagate-nvme.c | 1397 +++++ plugins/seagate/seagate-nvme.h | 45 + plugins/shannon/shannon-nvme.c | 374 ++ plugins/shannon/shannon-nvme.h | 20 + plugins/toshiba/toshiba-nvme.c | 563 ++ plugins/toshiba/toshiba-nvme.h | 20 + plugins/transcend/transcend-nvme.c | 92 + plugins/transcend/transcend-nvme.h | 20 + plugins/virtium/virtium-nvme.c | 1044 ++++ plugins/virtium/virtium-nvme.h | 21 + plugins/wdc/wdc-nvme.c | 5663 ++++++++++++++++++++ plugins/wdc/wdc-nvme.h | 38 + plugins/wdc/wdc-utils.c | 146 + plugins/wdc/wdc-utils.h | 77 + regress | 112 + scripts/gen-hostnqn.sh | 42 + scripts/latency | 114 + tests/Makefile | 48 + tests/README | 93 + tests/TODO | 14 + tests/config.json | 5 + tests/nvme_attach_detach_ns_test.py | 90 + tests/nvme_compare_test.py | 79 + tests/nvme_create_max_ns_test.py | 97 + tests/nvme_error_log_test.py | 63 + tests/nvme_flush_test.py | 61 + tests/nvme_format_test.py | 148 + tests/nvme_fw_log_test.py | 71 + tests/nvme_get_features_test.py | 105 + tests/nvme_id_ctrl_test.py | 56 + tests/nvme_id_ns_test.py | 88 + tests/nvme_read_write_test.py | 72 + tests/nvme_simple_template_test.py | 55 + tests/nvme_smart_log_test.py | 86 + tests/nvme_test.py | 479 ++ tests/nvme_test_io.py | 99 + tests/nvme_test_logger.py | 52 + tests/nvme_writeuncor_test.py | 76 + tests/nvme_writezeros_test.py | 102 + util/argconfig.c | 534 ++ util/argconfig.h | 130 + util/json.c | 407 ++ util/json.h | 88 + util/parser.c | 284 + util/parser.h | 34 + util/suffix.c | 132 + util/suffix.h | 41 + 457 files changed, 159628 insertions(+) create mode 100644 .gitignore create mode 100644 CONTRIBUTING.md create mode 100644 Documentation/Makefile create mode 100644 Documentation/asciidoc.conf create mode 100644 Documentation/asciidoctor-extensions.rb create mode 100644 Documentation/cmds-main.txt create mode 100755 Documentation/install-webdoc.sh create mode 100644 Documentation/manpage-base.xsl create mode 100644 Documentation/manpage-normal.xsl create mode 100644 Documentation/nvme-admin-passthru.1 create mode 100644 Documentation/nvme-admin-passthru.html create mode 100644 Documentation/nvme-admin-passthru.txt create mode 100644 Documentation/nvme-ana-log.1 create mode 100644 Documentation/nvme-ana-log.html create mode 100644 Documentation/nvme-ana-log.txt create mode 100644 Documentation/nvme-attach-ns.1 create mode 100644 Documentation/nvme-attach-ns.html create mode 100644 Documentation/nvme-attach-ns.txt create mode 100644 Documentation/nvme-changed-ns-list-log.1 create mode 100644 Documentation/nvme-changed-ns-list-log.html create mode 100644 Documentation/nvme-changed-ns-list-log.txt create mode 100644 Documentation/nvme-compare.1 create mode 100644 Documentation/nvme-compare.html create mode 100644 Documentation/nvme-compare.txt create mode 100644 Documentation/nvme-connect-all.1 create mode 100644 Documentation/nvme-connect-all.html create mode 100644 Documentation/nvme-connect-all.txt create mode 100644 Documentation/nvme-connect.1 create mode 100644 Documentation/nvme-connect.html create mode 100644 Documentation/nvme-connect.txt create mode 100644 Documentation/nvme-create-ns.1 create mode 100644 Documentation/nvme-create-ns.html create mode 100644 Documentation/nvme-create-ns.txt create mode 100644 Documentation/nvme-delete-ns.1 create mode 100644 Documentation/nvme-delete-ns.html create mode 100644 Documentation/nvme-delete-ns.txt create mode 100644 Documentation/nvme-dera-stat.1 create mode 100644 Documentation/nvme-dera-stat.html create mode 100644 Documentation/nvme-dera-stat.txt create mode 100644 Documentation/nvme-detach-ns.1 create mode 100644 Documentation/nvme-detach-ns.html create mode 100644 Documentation/nvme-detach-ns.txt create mode 100644 Documentation/nvme-device-self-test.1 create mode 100644 Documentation/nvme-device-self-test.html create mode 100644 Documentation/nvme-device-self-test.txt create mode 100644 Documentation/nvme-dir-receive.1 create mode 100644 Documentation/nvme-dir-receive.html create mode 100644 Documentation/nvme-dir-receive.txt create mode 100644 Documentation/nvme-dir-send.1 create mode 100644 Documentation/nvme-dir-send.html create mode 100644 Documentation/nvme-dir-send.txt create mode 100644 Documentation/nvme-disconnect-all.1 create mode 100644 Documentation/nvme-disconnect-all.html create mode 100644 Documentation/nvme-disconnect-all.txt create mode 100644 Documentation/nvme-disconnect.1 create mode 100644 Documentation/nvme-disconnect.html create mode 100644 Documentation/nvme-disconnect.txt create mode 100644 Documentation/nvme-discover.1 create mode 100644 Documentation/nvme-discover.html create mode 100644 Documentation/nvme-discover.txt create mode 100644 Documentation/nvme-dsm.1 create mode 100644 Documentation/nvme-dsm.html create mode 100644 Documentation/nvme-dsm.txt create mode 100644 Documentation/nvme-effects-log.1 create mode 100644 Documentation/nvme-effects-log.html create mode 100644 Documentation/nvme-effects-log.txt create mode 100644 Documentation/nvme-endurance-log.1 create mode 100644 Documentation/nvme-endurance-log.html create mode 100644 Documentation/nvme-endurance-log.txt create mode 100644 Documentation/nvme-error-log.1 create mode 100644 Documentation/nvme-error-log.html create mode 100644 Documentation/nvme-error-log.txt create mode 100644 Documentation/nvme-flush.1 create mode 100644 Documentation/nvme-flush.html create mode 100644 Documentation/nvme-flush.txt create mode 100644 Documentation/nvme-format.1 create mode 100644 Documentation/nvme-format.html create mode 100644 Documentation/nvme-format.txt create mode 100644 Documentation/nvme-fw-commit.1 create mode 100644 Documentation/nvme-fw-commit.html create mode 100644 Documentation/nvme-fw-commit.txt create mode 100644 Documentation/nvme-fw-download.1 create mode 100644 Documentation/nvme-fw-download.html create mode 100644 Documentation/nvme-fw-download.txt create mode 100644 Documentation/nvme-fw-log.1 create mode 100644 Documentation/nvme-fw-log.html create mode 100644 Documentation/nvme-fw-log.txt create mode 100644 Documentation/nvme-gen-hostnqn.1 create mode 100644 Documentation/nvme-gen-hostnqn.html create mode 100644 Documentation/nvme-gen-hostnqn.txt create mode 100644 Documentation/nvme-get-feature.1 create mode 100644 Documentation/nvme-get-feature.html create mode 100644 Documentation/nvme-get-feature.txt create mode 100644 Documentation/nvme-get-log.1 create mode 100644 Documentation/nvme-get-log.html create mode 100644 Documentation/nvme-get-log.txt create mode 100644 Documentation/nvme-get-ns-id.1 create mode 100644 Documentation/nvme-get-ns-id.html create mode 100644 Documentation/nvme-get-ns-id.txt create mode 100644 Documentation/nvme-get-property.1 create mode 100644 Documentation/nvme-get-property.html create mode 100644 Documentation/nvme-get-property.txt create mode 100644 Documentation/nvme-help.1 create mode 100644 Documentation/nvme-help.html create mode 100644 Documentation/nvme-help.txt create mode 100644 Documentation/nvme-huawei-id-ctrl.1 create mode 100644 Documentation/nvme-huawei-id-ctrl.html create mode 100644 Documentation/nvme-huawei-id-ctrl.txt create mode 100644 Documentation/nvme-huawei-list.1 create mode 100644 Documentation/nvme-huawei-list.html create mode 100644 Documentation/nvme-huawei-list.txt create mode 100644 Documentation/nvme-id-ctrl.1 create mode 100644 Documentation/nvme-id-ctrl.html create mode 100644 Documentation/nvme-id-ctrl.txt create mode 100644 Documentation/nvme-id-ns.1 create mode 100644 Documentation/nvme-id-ns.html create mode 100644 Documentation/nvme-id-ns.txt create mode 100644 Documentation/nvme-id-nvmset.1 create mode 100644 Documentation/nvme-id-nvmset.html create mode 100644 Documentation/nvme-id-nvmset.txt create mode 100644 Documentation/nvme-intel-id-ctrl.1 create mode 100644 Documentation/nvme-intel-id-ctrl.html create mode 100644 Documentation/nvme-intel-id-ctrl.txt create mode 100644 Documentation/nvme-intel-internal-log.1 create mode 100644 Documentation/nvme-intel-internal-log.html create mode 100644 Documentation/nvme-intel-internal-log.txt create mode 100644 Documentation/nvme-intel-lat-stats.1 create mode 100644 Documentation/nvme-intel-lat-stats.html create mode 100644 Documentation/nvme-intel-lat-stats.txt create mode 100644 Documentation/nvme-intel-market-name.1 create mode 100644 Documentation/nvme-intel-market-name.html create mode 100644 Documentation/nvme-intel-market-name.txt create mode 100644 Documentation/nvme-intel-smart-log-add.1 create mode 100644 Documentation/nvme-intel-smart-log-add.html create mode 100644 Documentation/nvme-intel-smart-log-add.txt create mode 100644 Documentation/nvme-intel-temp-stats.1 create mode 100644 Documentation/nvme-intel-temp-stats.html create mode 100644 Documentation/nvme-intel-temp-stats.txt create mode 100644 Documentation/nvme-io-passthru.1 create mode 100644 Documentation/nvme-io-passthru.html create mode 100644 Documentation/nvme-io-passthru.txt create mode 100644 Documentation/nvme-list-ctrl.1 create mode 100644 Documentation/nvme-list-ctrl.html create mode 100644 Documentation/nvme-list-ctrl.txt create mode 100644 Documentation/nvme-list-ns.1 create mode 100644 Documentation/nvme-list-ns.html create mode 100644 Documentation/nvme-list-ns.txt create mode 100644 Documentation/nvme-list-subsys.1 create mode 100644 Documentation/nvme-list-subsys.html create mode 100644 Documentation/nvme-list-subsys.txt create mode 100644 Documentation/nvme-list.1 create mode 100644 Documentation/nvme-list.html create mode 100644 Documentation/nvme-list.txt create mode 100644 Documentation/nvme-lnvm-create.1 create mode 100644 Documentation/nvme-lnvm-create.html create mode 100644 Documentation/nvme-lnvm-create.txt create mode 100644 Documentation/nvme-lnvm-diag-bbtbl.1 create mode 100644 Documentation/nvme-lnvm-diag-bbtbl.html create mode 100644 Documentation/nvme-lnvm-diag-bbtbl.txt create mode 100644 Documentation/nvme-lnvm-diag-set-bbtbl.1 create mode 100644 Documentation/nvme-lnvm-diag-set-bbtbl.html create mode 100644 Documentation/nvme-lnvm-diag-set-bbtbl.txt create mode 100644 Documentation/nvme-lnvm-factory.1 create mode 100644 Documentation/nvme-lnvm-factory.html create mode 100644 Documentation/nvme-lnvm-factory.txt create mode 100644 Documentation/nvme-lnvm-id-ns.1 create mode 100644 Documentation/nvme-lnvm-id-ns.html create mode 100644 Documentation/nvme-lnvm-id-ns.txt create mode 100644 Documentation/nvme-lnvm-info.1 create mode 100644 Documentation/nvme-lnvm-info.html create mode 100644 Documentation/nvme-lnvm-info.txt create mode 100644 Documentation/nvme-lnvm-init.1 create mode 100644 Documentation/nvme-lnvm-init.html create mode 100644 Documentation/nvme-lnvm-init.txt create mode 100644 Documentation/nvme-lnvm-list.1 create mode 100644 Documentation/nvme-lnvm-list.html create mode 100644 Documentation/nvme-lnvm-list.txt create mode 100644 Documentation/nvme-lnvm-remove.1 create mode 100644 Documentation/nvme-lnvm-remove.html create mode 100644 Documentation/nvme-lnvm-remove.txt create mode 100644 Documentation/nvme-netapp-ontapdevices.1 create mode 100644 Documentation/nvme-netapp-ontapdevices.html create mode 100644 Documentation/nvme-netapp-ontapdevices.txt create mode 100644 Documentation/nvme-netapp-smdevices.1 create mode 100644 Documentation/nvme-netapp-smdevices.html create mode 100644 Documentation/nvme-netapp-smdevices.txt create mode 100644 Documentation/nvme-ns-descs.1 create mode 100644 Documentation/nvme-ns-descs.html create mode 100644 Documentation/nvme-ns-descs.txt create mode 100644 Documentation/nvme-ns-rescan.1 create mode 100644 Documentation/nvme-ns-rescan.html create mode 100644 Documentation/nvme-ns-rescan.txt create mode 100644 Documentation/nvme-read.1 create mode 100644 Documentation/nvme-read.html create mode 100644 Documentation/nvme-read.txt create mode 100644 Documentation/nvme-reset.1 create mode 100644 Documentation/nvme-reset.html create mode 100644 Documentation/nvme-reset.txt create mode 100644 Documentation/nvme-resv-acquire.1 create mode 100644 Documentation/nvme-resv-acquire.html create mode 100644 Documentation/nvme-resv-acquire.txt create mode 100644 Documentation/nvme-resv-register.1 create mode 100644 Documentation/nvme-resv-register.html create mode 100644 Documentation/nvme-resv-register.txt create mode 100644 Documentation/nvme-resv-release.1 create mode 100644 Documentation/nvme-resv-release.html create mode 100644 Documentation/nvme-resv-release.txt create mode 100644 Documentation/nvme-resv-report.1 create mode 100644 Documentation/nvme-resv-report.html create mode 100644 Documentation/nvme-resv-report.txt create mode 100644 Documentation/nvme-sanitize-log.1 create mode 100644 Documentation/nvme-sanitize-log.html create mode 100644 Documentation/nvme-sanitize-log.txt create mode 100644 Documentation/nvme-sanitize.1 create mode 100644 Documentation/nvme-sanitize.html create mode 100644 Documentation/nvme-sanitize.txt create mode 100644 Documentation/nvme-security-recv.1 create mode 100644 Documentation/nvme-security-recv.html create mode 100644 Documentation/nvme-security-recv.txt create mode 100644 Documentation/nvme-security-send.1 create mode 100644 Documentation/nvme-security-send.html create mode 100644 Documentation/nvme-security-send.txt create mode 100644 Documentation/nvme-self-test-log.1 create mode 100644 Documentation/nvme-self-test-log.html create mode 100644 Documentation/nvme-self-test-log.txt create mode 100644 Documentation/nvme-set-feature.1 create mode 100644 Documentation/nvme-set-feature.html create mode 100644 Documentation/nvme-set-feature.txt create mode 100644 Documentation/nvme-set-property.1 create mode 100644 Documentation/nvme-set-property.html create mode 100644 Documentation/nvme-set-property.txt create mode 100644 Documentation/nvme-show-hostnqn.1 create mode 100644 Documentation/nvme-show-hostnqn.html create mode 100644 Documentation/nvme-show-hostnqn.txt create mode 100644 Documentation/nvme-show-regs.1 create mode 100644 Documentation/nvme-show-regs.html create mode 100644 Documentation/nvme-show-regs.txt create mode 100644 Documentation/nvme-smart-log.1 create mode 100644 Documentation/nvme-smart-log.html create mode 100644 Documentation/nvme-smart-log.txt create mode 100644 Documentation/nvme-subsystem-reset.1 create mode 100644 Documentation/nvme-subsystem-reset.html create mode 100644 Documentation/nvme-subsystem-reset.txt create mode 100644 Documentation/nvme-telemetry-log.1 create mode 100644 Documentation/nvme-telemetry-log.html create mode 100644 Documentation/nvme-telemetry-log.txt create mode 100644 Documentation/nvme-toshiba-clear-pcie-correctable-errors.1 create mode 100644 Documentation/nvme-toshiba-clear-pcie-correctable-errors.html create mode 100644 Documentation/nvme-toshiba-clear-pcie-correctable-errors.txt create mode 100644 Documentation/nvme-toshiba-vs-internal-log.1 create mode 100644 Documentation/nvme-toshiba-vs-internal-log.html create mode 100644 Documentation/nvme-toshiba-vs-internal-log.txt create mode 100644 Documentation/nvme-toshiba-vs-smart-add-log.1 create mode 100644 Documentation/nvme-toshiba-vs-smart-add-log.html create mode 100644 Documentation/nvme-toshiba-vs-smart-add-log.txt create mode 100644 Documentation/nvme-transcend-badblock.1 create mode 100644 Documentation/nvme-transcend-badblock.html create mode 100644 Documentation/nvme-transcend-badblock.txt create mode 100644 Documentation/nvme-transcend-healthvalue.1 create mode 100644 Documentation/nvme-transcend-healthvalue.html create mode 100644 Documentation/nvme-transcend-healthvalue.txt create mode 100644 Documentation/nvme-virtium-save-smart-to-vtview-log.1 create mode 100644 Documentation/nvme-virtium-save-smart-to-vtview-log.html create mode 100755 Documentation/nvme-virtium-save-smart-to-vtview-log.txt create mode 100644 Documentation/nvme-virtium-show-identify.1 create mode 100644 Documentation/nvme-virtium-show-identify.html create mode 100755 Documentation/nvme-virtium-show-identify.txt create mode 100644 Documentation/nvme-wdc-cap-diag.1 create mode 100644 Documentation/nvme-wdc-cap-diag.html create mode 100644 Documentation/nvme-wdc-cap-diag.txt create mode 100644 Documentation/nvme-wdc-clear-assert-dump.1 create mode 100644 Documentation/nvme-wdc-clear-assert-dump.html create mode 100644 Documentation/nvme-wdc-clear-assert-dump.txt create mode 100644 Documentation/nvme-wdc-clear-fw-activate-history.1 create mode 100644 Documentation/nvme-wdc-clear-fw-activate-history.html create mode 100644 Documentation/nvme-wdc-clear-fw-activate-history.txt create mode 100644 Documentation/nvme-wdc-clear-pcie-corr.1 create mode 100644 Documentation/nvme-wdc-clear-pcie-corr.html create mode 100644 Documentation/nvme-wdc-clear-pcie-correctable-errors.1 create mode 100644 Documentation/nvme-wdc-clear-pcie-correctable-errors.html create mode 100644 Documentation/nvme-wdc-clear-pcie-correctable-errors.txt create mode 100644 Documentation/nvme-wdc-drive-essentials.1 create mode 100644 Documentation/nvme-wdc-drive-essentials.html create mode 100644 Documentation/nvme-wdc-drive-essentials.txt create mode 100644 Documentation/nvme-wdc-drive-log.1 create mode 100644 Documentation/nvme-wdc-drive-log.html create mode 100644 Documentation/nvme-wdc-drive-log.txt create mode 100644 Documentation/nvme-wdc-drive-resize.1 create mode 100644 Documentation/nvme-wdc-drive-resize.html create mode 100644 Documentation/nvme-wdc-drive-resize.txt create mode 100644 Documentation/nvme-wdc-get-crash-dump.1 create mode 100644 Documentation/nvme-wdc-get-crash-dump.html create mode 100644 Documentation/nvme-wdc-get-crash-dump.txt create mode 100644 Documentation/nvme-wdc-get-drive-status.1 create mode 100644 Documentation/nvme-wdc-get-drive-status.html create mode 100644 Documentation/nvme-wdc-get-drive-status.txt create mode 100644 Documentation/nvme-wdc-get-pfail-dump.1 create mode 100644 Documentation/nvme-wdc-get-pfail-dump.html create mode 100644 Documentation/nvme-wdc-get-pfail-dump.txt create mode 100644 Documentation/nvme-wdc-id-ctrl.1 create mode 100644 Documentation/nvme-wdc-id-ctrl.html create mode 100644 Documentation/nvme-wdc-id-ctrl.txt create mode 100644 Documentation/nvme-wdc-log-page-directory.1 create mode 100644 Documentation/nvme-wdc-log-page-directory.html create mode 100644 Documentation/nvme-wdc-log-page-directory.txt create mode 100644 Documentation/nvme-wdc-namespace-resize.1 create mode 100644 Documentation/nvme-wdc-namespace-resize.html create mode 100644 Documentation/nvme-wdc-namespace-resize.txt create mode 100644 Documentation/nvme-wdc-purge-monitor.1 create mode 100644 Documentation/nvme-wdc-purge-monitor.html create mode 100644 Documentation/nvme-wdc-purge-monitor.txt create mode 100644 Documentation/nvme-wdc-purge.1 create mode 100644 Documentation/nvme-wdc-purge.html create mode 100644 Documentation/nvme-wdc-purge.txt create mode 100644 Documentation/nvme-wdc-smart-add-log.1 create mode 100644 Documentation/nvme-wdc-smart-add-log.html create mode 100644 Documentation/nvme-wdc-vs-drive-info.1 create mode 100644 Documentation/nvme-wdc-vs-drive-info.html create mode 100644 Documentation/nvme-wdc-vs-drive-info.txt create mode 100644 Documentation/nvme-wdc-vs-error-reason-identifier.1 create mode 100644 Documentation/nvme-wdc-vs-error-reason-identifier.html create mode 100644 Documentation/nvme-wdc-vs-error-reason-identifier.txt create mode 100644 Documentation/nvme-wdc-vs-fw-activate-history.1 create mode 100644 Documentation/nvme-wdc-vs-fw-activate-history.html create mode 100644 Documentation/nvme-wdc-vs-fw-activate-history.txt create mode 100644 Documentation/nvme-wdc-vs-internal-log.1 create mode 100644 Documentation/nvme-wdc-vs-internal-log.html create mode 100644 Documentation/nvme-wdc-vs-internal-log.txt create mode 100644 Documentation/nvme-wdc-vs-nand-stats.1 create mode 100644 Documentation/nvme-wdc-vs-nand-stats.html create mode 100644 Documentation/nvme-wdc-vs-nand-stats.txt create mode 100644 Documentation/nvme-wdc-vs-smart-add-log.1 create mode 100644 Documentation/nvme-wdc-vs-smart-add-log.html create mode 100644 Documentation/nvme-wdc-vs-smart-add-log.txt create mode 100644 Documentation/nvme-wdc-vs-telemetry-controller-option.1 create mode 100644 Documentation/nvme-wdc-vs-telemetry-controller-option.html create mode 100644 Documentation/nvme-wdc-vs-telemetry-controller-option.txt create mode 100644 Documentation/nvme-write-uncor.1 create mode 100644 Documentation/nvme-write-uncor.html create mode 100644 Documentation/nvme-write-uncor.txt create mode 100644 Documentation/nvme-write-zeroes.1 create mode 100644 Documentation/nvme-write-zeroes.html create mode 100644 Documentation/nvme-write-zeroes.txt create mode 100644 Documentation/nvme-write.1 create mode 100644 Documentation/nvme-write.html create mode 100644 Documentation/nvme-write.txt create mode 100644 Documentation/nvme.1 create mode 100644 Documentation/nvme.html create mode 100644 Documentation/nvme.txt create mode 100644 LICENSE create mode 100644 Makefile create mode 100755 NVME-VERSION-GEN create mode 100644 README.md create mode 100644 cmd.h create mode 100644 cmd_handler.h create mode 100644 common.h create mode 100644 completions/README create mode 100644 completions/_nvme create mode 100644 completions/bash-nvme-completion.sh create mode 100644 define_cmd.h create mode 100644 etc/discovery.conf.in create mode 100644 fabrics.c create mode 100644 fabrics.h create mode 100644 linux/lightnvm.h create mode 100644 linux/nvme.h create mode 100644 linux/nvme_ioctl.h create mode 100644 nvme-builtin.h create mode 100644 nvme-filters.c create mode 100644 nvme-ioctl.c create mode 100644 nvme-ioctl.h create mode 100644 nvme-lightnvm.c create mode 100644 nvme-lightnvm.h create mode 100644 nvme-models.c create mode 100644 nvme-models.h create mode 100644 nvme-print.c create mode 100644 nvme-print.h create mode 100644 nvme-status.c create mode 100644 nvme-status.h create mode 100644 nvme-topology.c create mode 100644 nvme.c create mode 100644 nvme.control.in create mode 100644 nvme.h create mode 100644 nvme.spec.in create mode 100644 nvmf-autoconnect/dracut-conf/70-nvmf-autoconnect.conf.in create mode 100644 nvmf-autoconnect/systemd/nvmefc-boot-connections.service create mode 100644 nvmf-autoconnect/systemd/nvmf-autoconnect.service create mode 100644 nvmf-autoconnect/systemd/nvmf-connect.target create mode 100644 nvmf-autoconnect/systemd/nvmf-connect@.service create mode 100644 nvmf-autoconnect/udev-rules/70-nvmf-autoconnect.rules create mode 100644 nvmf-autoconnect/udev-rules/71-nvmf-iopolicy-netapp.rules create mode 100644 plugin.c create mode 100644 plugin.h create mode 100644 plugins/dera/dera-nvme.c create mode 100644 plugins/dera/dera-nvme.h create mode 100644 plugins/huawei/huawei-nvme.c create mode 100644 plugins/huawei/huawei-nvme.h create mode 100644 plugins/intel/intel-nvme.c create mode 100644 plugins/intel/intel-nvme.h create mode 100644 plugins/lnvm/lnvm-nvme.c create mode 100644 plugins/lnvm/lnvm-nvme.h create mode 100644 plugins/memblaze/memblaze-nvme.c create mode 100644 plugins/memblaze/memblaze-nvme.h create mode 100644 plugins/memblaze/memblaze-utils.h create mode 100644 plugins/micron/micron-nvme.c create mode 100644 plugins/micron/micron-nvme.h create mode 100644 plugins/netapp/netapp-nvme.c create mode 100644 plugins/netapp/netapp-nvme.h create mode 100644 plugins/scaleflux/sfx-nvme.c create mode 100644 plugins/scaleflux/sfx-nvme.h create mode 100644 plugins/seagate/seagate-diag.h create mode 100644 plugins/seagate/seagate-nvme.c create mode 100644 plugins/seagate/seagate-nvme.h create mode 100644 plugins/shannon/shannon-nvme.c create mode 100644 plugins/shannon/shannon-nvme.h create mode 100644 plugins/toshiba/toshiba-nvme.c create mode 100644 plugins/toshiba/toshiba-nvme.h create mode 100644 plugins/transcend/transcend-nvme.c create mode 100644 plugins/transcend/transcend-nvme.h create mode 100644 plugins/virtium/virtium-nvme.c create mode 100644 plugins/virtium/virtium-nvme.h create mode 100644 plugins/wdc/wdc-nvme.c create mode 100644 plugins/wdc/wdc-nvme.h create mode 100644 plugins/wdc/wdc-utils.c create mode 100644 plugins/wdc/wdc-utils.h create mode 100755 regress create mode 100644 scripts/gen-hostnqn.sh create mode 100755 scripts/latency create mode 100644 tests/Makefile create mode 100644 tests/README create mode 100644 tests/TODO create mode 100644 tests/config.json create mode 100644 tests/nvme_attach_detach_ns_test.py create mode 100644 tests/nvme_compare_test.py create mode 100644 tests/nvme_create_max_ns_test.py create mode 100644 tests/nvme_error_log_test.py create mode 100644 tests/nvme_flush_test.py create mode 100644 tests/nvme_format_test.py create mode 100644 tests/nvme_fw_log_test.py create mode 100644 tests/nvme_get_features_test.py create mode 100644 tests/nvme_id_ctrl_test.py create mode 100644 tests/nvme_id_ns_test.py create mode 100644 tests/nvme_read_write_test.py create mode 100644 tests/nvme_simple_template_test.py create mode 100644 tests/nvme_smart_log_test.py create mode 100644 tests/nvme_test.py create mode 100644 tests/nvme_test_io.py create mode 100644 tests/nvme_test_logger.py create mode 100644 tests/nvme_writeuncor_test.py create mode 100644 tests/nvme_writezeros_test.py create mode 100644 util/argconfig.c create mode 100644 util/argconfig.h create mode 100644 util/json.c create mode 100644 util/json.h create mode 100644 util/parser.c create mode 100644 util/parser.h create mode 100644 util/suffix.c create mode 100644 util/suffix.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b0efd0b --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +nvme +*.xml +a.out +*.o +*~ +*.swp +NVME-VERSION-FILE + +cscope.* + +/debian/files +/debian/nvme-cli.debhelper.log +/debian/nvme-cli.substvars +/debian/nvme-cli + +tests/__pycache__ +tests/nvmetests +tests/*.pyc diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3b7f55f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,20 @@ +# Contributing to the NVM-e CLI + +Here you will find instructions on how to contribute to the NVM-Express command +line interface. + +Contributions and new ideas are most welcome! + +**NOTE: If you do decide to implement code changes and contribute them, +please make sure you agree your contribution can be made available +under the [GPLv2-style License used for the NVMe CLI](https://github.com/linux-nvme/nvme-cli/blob/master/LICENSE).** + +### Code Contributions + +Please feel free to use the github forums to ask for comments & questions on +your code before submitting a pull request. The NVMe CLI project uses the +common *fork and merge* workflow used by most GitHub-hosted projects. + +### Bug Reports + +Bugs for the NVM Library project are tracked in our [GitHub Issues Database](https://github.com/linux-nvme/nvme-cli/issues). diff --git a/Documentation/Makefile b/Documentation/Makefile new file mode 100644 index 0000000..9edae99 --- /dev/null +++ b/Documentation/Makefile @@ -0,0 +1,265 @@ +# Guard against environment variables +MAN1_TXT = +TECH_DOCS = +ARTICLES = +SP_ARTICLES = + +MAN1_TXT += $(filter-out \ + $(addsuffix .txt, $(ARTICLES) $(SP_ARTICLES)), \ + $(wildcard nvme-*.txt)) +MAN1_TXT += nvme.txt +MAN_TXT = $(MAN1_TXT) +MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT)) +MAN_HTML = $(patsubst %.txt,%.html,$(MAN_TXT)) + +DOC_HTML = $(MAN_HTML) $(OBSOLETE_HTML) + +API_DOCS = +SP_ARTICLES += $(API_DOCS) +SP_ARTICLES += $(TECH_DOCS) + +ifneq ($(findstring $(MAKEFLAGS),s),s) +ifndef V + QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@; + QUIET_XMLTO = @echo ' ' XMLTO $@; + QUIET_DB2TEXI = @echo ' ' DB2TEXI $@; + QUIET_MAKEINFO = @echo ' ' MAKEINFO $@; + QUIET_DBLATEX = @echo ' ' DBLATEX $@; + QUIET_XSLTPROC = @echo ' ' XSLTPROC $@; + QUIET_GEN = @echo ' ' GEN $@; + QUIET_LINT = @echo ' ' LINT $@; + QUIET_STDERR = 2> /dev/null + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ + $(MAKE) $(PRINT_DIR) -C $$subdir + export V +endif +endif + +DOC_MAN1 = $(patsubst %.txt,%.1,$(MAN1_TXT)) + +ASCIIDOC = asciidoc +ASCIIDOC_EXTRA = +ASCIIDOC_DOCBOOK = docbook +ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) +TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK) +MANPAGE_XSL = manpage-normal.xsl +XMLTO = xmlto +XMLTO_EXTRA = --skip-validation +INSTALL ?= install +RM ?= rm -f +MAN_REPO = ../../nvme-manpages + +ASCIIDOC_HTML = xhtml11 +ASCIIDOC_CONF = -f asciidoc.conf + +ifdef USE_ASCIIDOCTOR +ASCIIDOC = asciidoctor +ASCIIDOC_CONF = +ASCIIDOC_HTML = xhtml5 +ASCIIDOC_DOCBOOK = docbook5 +ASCIIDOC_EXTRA += -acompat-mode +ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions +ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;' +ASCIIDOC_EXTRA += -amansource='NVMe' +ASCIIDOC_EXTRA += -amanmanual='NVMe Manual' +endif + +ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) +TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML) + +MAKEINFO = makeinfo +INSTALL_INFO = install-info +DOCBOOK2X_TEXI = docbook2x-texi +DBLATEX = dblatex +ASCIIDOC_DBLATEX_DIR = /etc/asciidoc/dblatex +ifndef PERL_PATH + PERL_PATH = /usr/bin/perl +endif + +ifdef DOCBOOK_XSL_172 +MANPAGE_XSL = manpage-1.72.xsl +else + ifndef ASCIIDOC_ROFF + endif +endif +ifdef MAN_BOLD_LITERAL +XMLTO_EXTRA += -m manpage-bold-literal.xsl +endif +ifdef DOCBOOK_SUPPRESS_SP +XMLTO_EXTRA += -m manpage-suppress-sp.xsl +endif + +ifndef MAN_BASE_URL +MAN_BASE_URL = file://$(htmldir)/ +endif +XMLTO_EXTRA += + +ifdef GNU_ROFF +XMLTO_EXTRA += +endif + +SHELL_PATH ?= $(SHELL) +# Shell quote; +SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) + +ifdef DEFAULT_PAGER +DEFAULT_PAGER_SQ = $(subst ','\'',$(DEFAULT_PAGER)) +endif + +ifdef DEFAULT_EDITOR +DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR)) +endif + +QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir +QUIET_SUBDIR1 = + +ifneq ($(findstring $(MAKEFLAGS),w),w) +PRINT_DIR = --no-print-directory +else # "make -w" +NO_SUBDIR = : +endif + +DESTDIR = +PREFIX ?= /usr/local + +all: man html + +html: $(DOC_HTML) + +man: man1 +man1: $(DOC_MAN1) + +install-no-build: + $(INSTALL) -d -m 755 $(DESTDIR)$(PREFIX)/share/man/man1 + $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(PREFIX)/share/man/man1 + +install: install-man + +install-man: man + $(INSTALL) -d -m 755 $(DESTDIR)$(PREFIX)/share/man/man1 + $(INSTALL) -m 644 $(DOC_MAN1) $(DESTDIR)$(PREFIX)/share/man/man1 + +docdep_prereqs = \ + cmd-list.made $(cmds_txt) + +doc.dep : $(docdep_prereqs) $(wildcard *.txt) build-docdep.perl + $(QUIET_GEN)$(RM) $@+ $@ && \ + $(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \ + mv $@+ $@ + +-include doc.dep + +cmds_txt = cmds-ancillaryinterrogators.txt \ + cmds-ancillarymanipulators.txt \ + cmds-mainporcelain.txt \ + cmds-plumbinginterrogators.txt \ + cmds-plumbingmanipulators.txt \ + cmds-synchingrepositories.txt \ + cmds-synchelpers.txt \ + cmds-purehelpers.txt \ + cmds-foreignscminterface.txt + +$(cmds_txt): cmd-list.made + +cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT) + $(QUIET_GEN)$(RM) $@ && \ + $(PERL_PATH) ./cmd-list.perl ../command-list.txt $(QUIET_STDERR) && \ + date >$@ + +clean: + $(RM) *.xml *.xml+ *.html+ + $(RM) *.texi *.texi+ *.texi++ nvme.info nvmeman.info + $(RM) *.pdf + $(RM) howto-index.txt howto/*.html doc.dep + $(RM) technical/*.html technical/api-index.txt + $(RM) $(cmds_txt) *.made + $(RM) manpage-base-url.xsl + $(RM) *~ + +clobber: clean + $(RM) *.html *.1 + +%.1 : %.xml + $(QUIET_XMLTO)$(RM) $@ && \ + $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< + +%.xml : %.txt + $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \ + $(TXT_TO_XML) -d manpage -o $@+ $< && \ + mv $@+ $@ + +user-manual.xml: user-manual.txt user-manual.conf + $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \ + $(TXT_TO_XML) -d article -o $@+ $< && \ + mv $@+ $@ + +technical/api-index.txt: technical/api-index-skel.txt \ + technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS)) + $(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh + +XSLT = docbook.xsl +XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css + +nvme.info: user-manual.texi + $(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi + +user-manual.texi: user-manual.xml + $(QUIET_DB2TEXI)$(RM) $@+ $@ && \ + $(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \ + $(PERL_PATH) fix-texi.perl <$@++ >$@+ && \ + rm $@++ && \ + mv $@+ $@ + +user-manual.pdf: user-manual.xml + $(QUIET_DBLATEX)$(RM) $@+ $@ && \ + $(DBLATEX) -o $@+ -p $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.xsl -s $(ASCIIDOC_DBLATEX_DIR)/asciidoc-dblatex.sty $< && \ + mv $@+ $@ + +nvmeman.texi: $(MAN_XML) cat-texi.perl + $(QUIET_DB2TEXI)$(RM) $@+ $@ && \ + ($(foreach xml,$(MAN_XML),$(DOCBOOK2X_TEXI) --encoding=UTF-8 \ + --to-stdout $(xml) &&) true) > $@++ && \ + $(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \ + rm $@++ && \ + mv $@+ $@ + +nvmeman.info: nvmeman.texi + $(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi + +$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml + $(QUIET_DB2TEXI)$(RM) $@+ $@ && \ + $(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \ + mv $@+ $@ + +howto-index.txt: howto-index.sh $(wildcard howto/*.txt) + $(QUIET_GEN)$(RM) $@+ $@ && \ + '$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@+ && \ + mv $@+ $@ + +WEBDOC_DEST = /pub/software/scm/nvme/docs + +$(MAN_HTML): %.html : %.txt + $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \ + $(TXT_TO_HTML) -d manpage -o $@+ $< && \ + mv $@+ $@ + +quick-install: quick-install-man + +$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt + $(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt + +install-webdoc : html + '$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST) + +require-manrepo:: + @if test ! -d $(MAN_REPO); \ + then echo "nvme-manpages repository must exist at $(MAN_REPO)"; exit 1; fi + +quick-install-man: require-manrepo + '$(SHELL_PATH_SQ)' ./install-doc-quick.sh $(MAN_REPO) $(DESTDIR)$(mandir) + +print-man1: + @for i in $(MAN1_TXT); do echo $$i; done + +.PHONY: FORCE diff --git a/Documentation/asciidoc.conf b/Documentation/asciidoc.conf new file mode 100644 index 0000000..f8a6e93 --- /dev/null +++ b/Documentation/asciidoc.conf @@ -0,0 +1,91 @@ +## linknvme: macro +# +# Usage: linknvme:command[manpage-section] +# +# Note, {0} is the manpage section, while {target} is the command. +# +# Show Git link as: (
); if section is defined, else just show +# the command. + +[macros] +(?su)[\\]?(?Plinknvme):(?P\S*?)\[(?P.*?)\]= + +[attributes] +asterisk=* +plus=+ +caret=^ +startsb=[ +endsb=] +backslash=\ +tilde=~ +apostrophe=' +backtick=` +litdd=-- + +ifdef::backend-docbook[] +[linknvme-inlinemacro] +{0%{target}} +{0#} +{0#{target}{0}} +{0#} +endif::backend-docbook[] + +ifdef::backend-docbook[] +ifndef::git-asciidoc-no-roff[] +# "unbreak" docbook-xsl v1.68 for manpages. v1.69 works with or without this. +# v1.72 breaks with this because it replaces dots not in roff requests. +[listingblock] +{title} + +| + +{title#} +endif::git-asciidoc-no-roff[] + +ifdef::git-asciidoc-no-roff[] +ifdef::doctype-manpage[] +# The following two small workarounds insert a simple paragraph after screen +[listingblock] +{title} + +| + +{title#} + +[verseblock] +{title} +{title%} +{title#} +| + +{title#} +{title%} +endif::doctype-manpage[] +endif::git-asciidoc-no-roff[] +endif::backend-docbook[] + +ifdef::doctype-manpage[] +ifdef::backend-docbook[] +[header] +template::[header-declarations] + + +{mantitle} +{manvolnum} +NVMe +{nvme_version} +NVMe Manual + + + {manname} + {manpurpose} + +endif::backend-docbook[] +endif::doctype-manpage[] + +ifdef::backend-xhtml11[] +[attributes] +git-relative-html-prefix= +[linknvme-inlinemacro] +{target}{0?({0})} +endif::backend-xhtml11[] diff --git a/Documentation/asciidoctor-extensions.rb b/Documentation/asciidoctor-extensions.rb new file mode 100644 index 0000000..8948e11 --- /dev/null +++ b/Documentation/asciidoctor-extensions.rb @@ -0,0 +1,29 @@ +require 'asciidoctor' +require 'asciidoctor/extensions' + +module Nvme + module Documentation + class LinkNvmeProcessor < Asciidoctor::Extensions::InlineMacroProcessor + use_dsl + + named :chrome + + def process(parent, target, attrs) + if parent.document.basebackend? 'html' + %(#{target}(#{attrs[1]})\n) + elsif parent.document.basebackend? 'manpage' + "#{target}(#{attrs[1]})" + elsif parent.document.basebackend? 'docbook' + "\n" \ + "#{target}" \ + "#{attrs[1]}\n" \ + "\n" + end + end + end + end +end + +Asciidoctor::Extensions.register do + inline_macro Nvme::Documentation::LinkNvmeProcessor, :linknvme +end diff --git a/Documentation/cmds-main.txt b/Documentation/cmds-main.txt new file mode 100644 index 0000000..824ca69 --- /dev/null +++ b/Documentation/cmds-main.txt @@ -0,0 +1,137 @@ +linknvme:nvme-admin-passthru[1]:: + Admin Passthrough Command + +linknvme:nvme-compare[1]:: + IO Compare + +linknvme:nvme-error-log[1]:: + Retrieve error logs + +linknvme:nvme-flush[1]:: + Submit flush + +linknvme:nvme-dms[1]:: + Submit Data Set Management + +linknvme:nvme-format[1]:: + Format namespace(s) + +linknvme:nvme-fw-activate[1]:: + F/W Activate + +linknvme:nvme-fw-download[1]:: + F/W Download + +linknvme:nvme-fw-log[1]:: + Retrieve f/w log + +linknvme:nvme-get-feature[1]:: + Get Features + +linknvme:nvme-get-log[1]:: + Generic Get Log + +linknvme:nvme-telemetry-log[1]:: + Telemetry Host-Initiated Log + +linknvme:nvme-smart-log[1]:: + Retrieve Smart Log + +linknvme:nvme-endurance-log[1]:: + Retrieve endurance Log + +linknvme:nvme-effects-log[1]:: + Retrieve effects Log + +linknvme:nvme-get-ns-id[1]:: + Retrieve namespace identifier + +linknvme:nvme-help[1]:: + NVMe CLI Help + +linknvme:nvme-id-ctrl[1]:: + Identify Controller + +linknvme:nvme-id-ns[1]:: + Identify Namespace + +linknvme:nvme-create-ns[1]:: + Create a new namespace + +linknvme:nvme-delete-ns[1]:: + Delete existing namespace + +linknvme:nvme-attach-ns[1]:: + Attach namespace + +linknvme:nvme-detach-ns[1]:: + Detach namespace + +linknvme:nvme-io-passthru[1]:: + IO Passthrough Command + +linknvme:nvme-list-ns[1]:: + List all nvme namespaces + +linknvme:nvme-ns-descs[1]:: + Identify Namespace Identification Descriptor + +linknvme:nvme-list[1]:: + List all nvme controllers + +linknvme:nvme-list-ctrl[1]:: + List controller in NVMe subsystem + +linknvme:nvme-read[1]:: + Issue IO Read Command + +linknvme:nvme-write[1]:: + Issue IO Write Command + +linknvme:nvme-write-zeroes[1]:: + Issue IO Write Zeroes Command + +linknvme:nvme-write-uncor[1]:: + Issue IO Write Uncorrectable Command + +linknvme:nvme-resv-acquire[1]:: + Acquire Namespace Reservation + +linknvme:nvme-resv-register[1]:: + Register Namespace Reservation + +linknvme:nvme-resv-release[1]:: + Release Namespace Reservation + +linknvme:nvme-resv-report[1]:: + Report Reservation Capabilities + +linknvme:nvme-security-recv[1]:: + Security Receive + +linknvme:nvme-security-send[1]:: + Security Send + +linknvme:nvme-set-feature[1]:: + Set Feature + +linknvme:nvme-show-regs[1]:: + Show NVMe Controller Registers + +linknvme:nvme-discover[1]:: + Send Get Log Page request to Discovery Controller + +linknvme:nvme-connect-all[1]:: + Discover and connect to all NVMe-over-Fabrics subsystems + +linknvme:nvme-connect[1]:: + Connect to an NVMe-over-Fabrics subsystem + +linknvme:nvme-disconnect[1]:: + Disconnect from an NVMe-over-Fabrics subsystem + +linknvme:nvme-disconnect-all[1]:: + Disconnect from all NVMe-over-Fabrics subsystems + +linknvme:nvme-get-property[1]:: + Reads and shows NVMe-over-Fabrics controller property diff --git a/Documentation/install-webdoc.sh b/Documentation/install-webdoc.sh new file mode 100755 index 0000000..ed8b4ff --- /dev/null +++ b/Documentation/install-webdoc.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +T="$1" + +for h in \ + *.txt *.html \ + howto/*.txt howto/*.html \ + technical/*.txt technical/*.html \ + RelNotes/*.txt *.css +do + if test ! -f "$h" + then + : did not match + elif test -f "$T/$h" && + $DIFF -u -I'^Last updated ' "$T/$h" "$h" + then + :; # up to date + else + echo >&2 "# install $h $T/$h" + rm -f "$T/$h" + mkdir -p $(dirname "$T/$h") + cp "$h" "$T/$h" + fi +done +strip_leading=$(echo "$T/" | sed -e 's|.|.|g') +for th in \ + "$T"/*.html "$T"/*.txt \ + "$T"/howto/*.txt "$T"/howto/*.html \ + "$T"/technical/*.txt "$T"/technical/*.html +do + h=$(expr "$th" : "$strip_leading"'\(.*\)') + case "$h" in + RelNotes-*.txt | index.html) continue ;; + esac + test -f "$h" && continue + echo >&2 "# rm -f $th" + rm -f "$th" +done +ln -sf git.html "$T/index.html" diff --git a/Documentation/manpage-base.xsl b/Documentation/manpage-base.xsl new file mode 100644 index 0000000..023c417 --- /dev/null +++ b/Documentation/manpage-base.xsl @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + sp + + + + + + + + br + + + diff --git a/Documentation/manpage-normal.xsl b/Documentation/manpage-normal.xsl new file mode 100644 index 0000000..b730031 --- /dev/null +++ b/Documentation/manpage-normal.xsl @@ -0,0 +1,13 @@ + + + + + + +\ +. + + diff --git a/Documentation/nvme-admin-passthru.1 b/Documentation/nvme-admin-passthru.1 new file mode 100644 index 0000000..f6d247f --- /dev/null +++ b/Documentation/nvme-admin-passthru.1 @@ -0,0 +1,171 @@ +'\" t +.\" Title: nvme-admin-passthru +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ADMIN\-PASSTHR" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-admin-passthru \- Submit an arbitrary admin command, return results +.SH "SYNOPSIS" +.sp +.nf +\fInvme\-admin\-passthru\fR [\-\-opcode= | \-o ] + [\-\-flags= | \-f ] [\-rsvd= | \-R ] + [\-\-namespace\-id=] [\-\-cdw2=] [\-\-cdw3=] + [\-\-cdw10=] [\-\-cdw11=] [\-\-cdw12=] + [\-\-cdw13=] [\-\-cdw14=] [\-\-cdw15=] + [\-\-data\-len= | \-l ] + [\-\-metadata\-len= | \-m ] + [\-\-input\-file= | \-i ] + [\-\-read | \-r ] [\-\-write | \-w] + [\-\-timeout= | \-t ] + [\-\-show\-command | \-s] + [\-\-dry\-run | \-d] + [\-\-raw\-binary | \-b] + [\-\-prefill= | \-p ] +.fi +.SH "DESCRIPTION" +.sp +Submits an arbitrary NVMe admin command and returns the applicable results\&. This may be the simply the commands result and status, or may also include a buffer if the command returns one\&. This command does no interpretation of the opcodes or options\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned structure (if applicable) may be returned in one of several ways depending on the option flags; the structure may printed by the program as a hex dump, or may be returned as a raw buffer printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-o , \-\-opcode= +.RS 4 +The NVMe opcode to send to the device in the command +.RE +.PP +\-f , \-\-flags= +.RS 4 +The NVMe command flags to send to the device in the command +.RE +.PP +\-R , \-\-rsvd= +.RS 4 +The value for the reserved field in the command\&. +.RE +.PP +\-n , \-\-namespace\-id= +.RS 4 +The value for the ns\-id in the command\&. +.RE +.PP +\-\-cdw[2\-3,10\-15]= +.RS 4 +Specifies the command dword value for that specified entry in the command +.RE +.PP +\-r, \-\-read, \-w, \-\-write +.RS 4 +Used for the data\-direction for the command and required for commands sending/receiving data\&. Don\(cqt use both read and write at the same time\&. +.RE +.PP +\-i , \-\-input\-file= +.RS 4 +If the command is a data\-out (write) command, use this file to fill the buffer sent to the device\&. If no file is given, assumed to use STDIN\&. +.RE +.PP +\-l , \-\-data\-len= +.RS 4 +The data length for the buffer used for this command\&. +.RE +.PP +\-m , \-\-metadata\-len= +.RS 4 +The metadata length for the buffer used for this command\&. +.RE +.PP +\-s, \-\-show\-cmd +.RS 4 +Print out the command to be sent\&. +.RE +.PP +\-d, \-\-dry\-run +.RS 4 +Do not actually send the command\&. If want to use \-\-dry\-run option, \-\-show\-cmd option +\fImust\fR +be set\&. Otherwise \-\-dry\-run option will be +\fIignored\fR\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw returned buffer to stdout if the command returns a structure\&. +.RE +.PP +\-p, \-\-prefill +.RS 4 +Prefill the buffer with a predetermined byte value\&. Defaults to 0\&. This may be useful if the data you are writing is shorter than the required buffer, and you need to pad it with a known value\&. It may also be useful if you need to confirm if a device is overwriting a buffer for a data\-in command\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The following will run the admin command with opcode=6 and cdw10=1, which corresponds to an identify controller command\&. This example requires the data\-len param be 4096, which is the size of the returned structure\&. The \-r option is used because it is a data\-in command +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme admin\-passthru /dev/nvme0 \-\-opcode=06 \-\-data\-len=4096 \-\-cdw10=1 \-r +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Or if you want to save that structure to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme admin\-passthru /dev/nvme0 \-\-opcode=06 \-\-data\-len=4096 \-\-cdw10=1 \-r \-b > id_ns\&.raw +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-admin-passthru.html b/Documentation/nvme-admin-passthru.html new file mode 100644 index 0000000..4a113ba --- /dev/null +++ b/Documentation/nvme-admin-passthru.html @@ -0,0 +1,989 @@ + + + + + +nvme-admin-passthru(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme-admin-passthru <device> [--opcode=<opcode> | -o <opcode>]
+                [--flags=<flags> | -f <flags>] [-rsvd=<rsvd> | -R <rsvd>]
+                [--namespace-id=<nsid>] [--cdw2=<cdw2>] [--cdw3=<cdw3>]
+                [--cdw10=<cdw10>] [--cdw11=<cdw11>] [--cdw12=<cdw12>]
+                [--cdw13=<cdw13>] [--cdw14=<cdw14>] [--cdw15=<cdw15>]
+                [--data-len=<data-len> | -l <data-len>]
+                [--metadata-len=<len> | -m <len>]
+                [--input-file=<file> | -i <file>]
+                [--read | -r ] [--write | -w]
+                [--timeout=<to> | -t <to>]
+                [--show-command | -s]
+                [--dry-run | -d]
+                [--raw-binary | -b]
+                [--prefill=<prefill> | -p <prefill>]
+
+
+
+
+
+

DESCRIPTION

+
+

Submits an arbitrary NVMe admin command and returns the applicable +results. This may be the simply the commands result and status, or may +also include a buffer if the command returns one. This command does no +interpretation of the opcodes or options.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned structure (if applicable) may be returned in +one of several ways depending on the option flags; the structure may +printed by the program as a hex dump, or may be returned as a raw buffer +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-o <opcode> +
+
+--opcode=<opcode> +
+
+

+ The NVMe opcode to send to the device in the command +

+
+
+-f <flags> +
+
+--flags=<flags> +
+
+

+ The NVMe command flags to send to the device in the command +

+
+
+-R <rsvd> +
+
+--rsvd=<rsvd> +
+
+

+ The value for the reserved field in the command. +

+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ The value for the ns-id in the command. +

+
+
+--cdw[2-3,10-15]=<cdw> +
+
+

+ Specifies the command dword value for that specified entry in + the command +

+
+
+-r +
+
+--read +
+
+-w +
+
+--write +
+
+

+ Used for the data-direction for the command and required for + commands sending/receiving data. Don’t use both read and write + at the same time. +

+
+
+-i <file> +
+
+--input-file=<file> +
+
+

+ If the command is a data-out (write) command, use this file + to fill the buffer sent to the device. If no file is given, + assumed to use STDIN. +

+
+
+-l <data-len> +
+
+--data-len=<data-len> +
+
+

+ The data length for the buffer used for this command. +

+
+
+-m <data-len> +
+
+--metadata-len=<data-len> +
+
+

+ The metadata length for the buffer used for this command. +

+
+
+-s +
+
+--show-cmd +
+
+

+ Print out the command to be sent. +

+
+
+-d +
+
+--dry-run +
+
+

+ Do not actually send the command. If want to use --dry-run option, + --show-cmd option must be set. Otherwise --dry-run option will be + ignored. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw returned buffer to stdout if the command returns + a structure. +

+
+
+-p +
+
+--prefill +
+
+

+ Prefill the buffer with a predetermined byte value. Defaults to 0. + This may be useful if the data you are writing is shorter + than the required buffer, and you need to pad it with a known + value. It may also be useful if you need to confirm if a device + is overwriting a buffer for a data-in command. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +The following will run the admin command with opcode=6 and cdw10=1, which + corresponds to an identify controller command. This example requires the + data-len param be 4096, which is the size of the returned structure. The -r + option is used because it is a data-in command +

    +
    +
    +
    # nvme admin-passthru /dev/nvme0 --opcode=06 --data-len=4096 --cdw10=1 -r
    +
    +
  • +
  • +

    +Or if you want to save that structure to a file: +

    +
    +
    +
    # nvme admin-passthru /dev/nvme0 --opcode=06 --data-len=4096 --cdw10=1 -r -b > id_ns.raw
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-admin-passthru.txt b/Documentation/nvme-admin-passthru.txt new file mode 100644 index 0000000..f2bff2e --- /dev/null +++ b/Documentation/nvme-admin-passthru.txt @@ -0,0 +1,128 @@ +nvme-admin-passthru(1) +====================== + +NAME +---- +nvme-admin-passthru - Submit an arbitrary admin command, return results + +SYNOPSIS +-------- +[verse] +'nvme-admin-passthru' [--opcode= | -o ] + [--flags= | -f ] [-rsvd= | -R ] + [--namespace-id=] [--cdw2=] [--cdw3=] + [--cdw10=] [--cdw11=] [--cdw12=] + [--cdw13=] [--cdw14=] [--cdw15=] + [--data-len= | -l ] + [--metadata-len= | -m ] + [--input-file= | -i ] + [--read | -r ] [--write | -w] + [--timeout= | -t ] + [--show-command | -s] + [--dry-run | -d] + [--raw-binary | -b] + [--prefill= | -p ] + +DESCRIPTION +----------- +Submits an arbitrary NVMe admin command and returns the applicable +results. This may be the simply the commands result and status, or may +also include a buffer if the command returns one. This command does no +interpretation of the opcodes or options. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned structure (if applicable) may be returned in +one of several ways depending on the option flags; the structure may +printed by the program as a hex dump, or may be returned as a raw buffer +printed to stdout for another program to parse. + +OPTIONS +------- +-o :: +--opcode=:: + The NVMe opcode to send to the device in the command + +-f :: +--flags=:: + The NVMe command flags to send to the device in the command + +-R :: +--rsvd=:: + The value for the reserved field in the command. + +-n :: +--namespace-id=:: + The value for the ns-id in the command. + +--cdw[2-3,10-15]=:: + Specifies the command dword value for that specified entry in + the command + +-r:: +--read:: +-w:: +--write:: + Used for the data-direction for the command and required for + commands sending/receiving data. Don't use both read and write + at the same time. + +-i :: +--input-file=:: + If the command is a data-out (write) command, use this file + to fill the buffer sent to the device. If no file is given, + assumed to use STDIN. + +-l :: +--data-len=:: + The data length for the buffer used for this command. + +-m :: +--metadata-len=:: + The metadata length for the buffer used for this command. + +-s:: +--show-cmd:: + Print out the command to be sent. + +-d:: +--dry-run:: + Do not actually send the command. If want to use --dry-run option, + --show-cmd option _must_ be set. Otherwise --dry-run option will be + _ignored_. + +-b:: +--raw-binary:: + Print the raw returned buffer to stdout if the command returns + a structure. + +-p:: +--prefill:: + Prefill the buffer with a predetermined byte value. Defaults to 0. + This may be useful if the data you are writing is shorter + than the required buffer, and you need to pad it with a known + value. It may also be useful if you need to confirm if a device + is overwriting a buffer for a data-in command. + +EXAMPLES +-------- +* The following will run the admin command with opcode=6 and cdw10=1, which + corresponds to an identify controller command. This example requires the + data-len param be 4096, which is the size of the returned structure. The -r + option is used because it is a data-in command ++ +------------ +# nvme admin-passthru /dev/nvme0 --opcode=06 --data-len=4096 --cdw10=1 -r +------------ ++ + +* Or if you want to save that structure to a file: ++ +------------ +# nvme admin-passthru /dev/nvme0 --opcode=06 --data-len=4096 --cdw10=1 -r -b > id_ns.raw +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-ana-log.1 b/Documentation/nvme-ana-log.1 new file mode 100644 index 0000000..862f42d --- /dev/null +++ b/Documentation/nvme-ana-log.1 @@ -0,0 +1,77 @@ +'\" t +.\" Title: nvme-ana-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ANA\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-ana-log \- Send NVMe ANA log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme ana\-log\fR [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Asymmetric Namespace Access log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory NVMe character device (ex: /dev/nvme0)\&. +.sp +On success, the returned ANA log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the ANA log page in a human readable format: +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme ana\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-ana-log.html b/Documentation/nvme-ana-log.html new file mode 100644 index 0000000..131205a --- /dev/null +++ b/Documentation/nvme-ana-log.html @@ -0,0 +1,819 @@ + + + + + + +nvme-ana-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme ana-log <device> [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Asymmetric Namespace Access log page from an NVMe device +and provides the returned structure.

+

The <device> parameter is mandatory NVMe character device (ex: /dev/nvme0).

+

On success, the returned ANA log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the ANA log page in a human readable format: +

    +
  • +
+
+
+
# nvme ana-log /dev/nvme0
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-ana-log.txt b/Documentation/nvme-ana-log.txt new file mode 100644 index 0000000..fdd412e --- /dev/null +++ b/Documentation/nvme-ana-log.txt @@ -0,0 +1,41 @@ +nvme-ana-log(1) +=============== + +NAME +---- +nvme-ana-log - Send NVMe ANA log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme ana-log' [-o | --output-format=] + +DESCRIPTION +----------- +Retrieves the NVMe Asymmetric Namespace Access log page from an NVMe device +and provides the returned structure. + +The parameter is mandatory NVMe character device (ex: /dev/nvme0). + +On success, the returned ANA log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Print the ANA log page in a human readable format: +------------ +# nvme ana-log /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-attach-ns.1 b/Documentation/nvme-attach-ns.1 new file mode 100644 index 0000000..0af22ae --- /dev/null +++ b/Documentation/nvme-attach-ns.1 @@ -0,0 +1,75 @@ +'\" t +.\" Title: nvme-attach-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ATTACH\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-attach-ns \- Send NVMe attach namespace, return result\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme attach\-ns\fR [\-\-namespace\-id= | \-n ] + [\-\-controllers= | \-c ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the nvme namespace attach command for the provided namespace identifier, attaching to the provided list of controller identifiers\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +The namespace identifier to attach\&. +.RE +.PP +\-c , \-controllers= +.RS 4 +The comma separated list of controller identifiers to attach the namesapce too\&. +.RE +.SH "EXAMPLES" +.sp +.if n \{\ +.RS 4 +.\} +.nf +Attach namspace to the controller: +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme attach\-ns /dev/nvme1 \-n 0x2 \-c 0x21 +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-attach-ns.html b/Documentation/nvme-attach-ns.html new file mode 100644 index 0000000..9415c01 --- /dev/null +++ b/Documentation/nvme-attach-ns.html @@ -0,0 +1,813 @@ + + + + + +nvme-attach-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme attach-ns <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--controllers=<ctrl-list,> | -c <ctrl-list,>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the nvme namespace attach command for +the provided namespace identifier, attaching to the provided list of +controller identifiers.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ The namespace identifier to attach. +

+
+
+-c <ctrl-list,> +
+
+-controllers=<ctrl-list,> +
+
+

+ The comma separated list of controller identifiers to attach + the namesapce too. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-attach-ns.txt b/Documentation/nvme-attach-ns.txt new file mode 100644 index 0000000..a5d3471 --- /dev/null +++ b/Documentation/nvme-attach-ns.txt @@ -0,0 +1,39 @@ +nvme-attach-ns(1) +================= + +NAME +---- +nvme-attach-ns - Send NVMe attach namespace, return result. + +SYNOPSIS +-------- +[verse] +'nvme attach-ns' [--namespace-id= | -n ] + [--controllers= | -c ] + +DESCRIPTION +----------- +For the NVMe device given, sends the nvme namespace attach command for +the provided namespace identifier, attaching to the provided list of +controller identifiers. + +OPTIONS +------- +-n :: +--namespace-id=:: + The namespace identifier to attach. + +-c :: +-controllers=:: + The comma separated list of controller identifiers to attach + the namesapce too. + +EXAMPLES +-------- + Attach namspace to the controller: + + # nvme attach-ns /dev/nvme1 -n 0x2 -c 0x21 + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-changed-ns-list-log.1 b/Documentation/nvme-changed-ns-list-log.1 new file mode 100644 index 0000000..13dda55 --- /dev/null +++ b/Documentation/nvme-changed-ns-list-log.1 @@ -0,0 +1,106 @@ +'\" t +.\" Title: nvme-changed-ns-list-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-CHANGED\-NS\-L" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-changed-ns-list-log \- Send NVMe Changed Namespace List log page request, returns result and log\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme changed\-ns\-list\-log\fR [\-\-raw\-binary | \-b] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Changed Namespace List log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and must be a NVMe character device (ex: /dev/nvme0)\&. +.sp +On success, the returned Changed Namespace List log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw Changed Namespace List log buffer to stdout\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the Changed Namespace List Log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme changed\-ns\-list\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the raw Changed Namespace List log to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme changed\-ns\-list\-log /dev/nvme0 \-\-raw\-binary > log\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-changed-ns-list-log.html b/Documentation/nvme-changed-ns-list-log.html new file mode 100644 index 0000000..a331e49 --- /dev/null +++ b/Documentation/nvme-changed-ns-list-log.html @@ -0,0 +1,842 @@ + + + + + + +nvme-changed-ns-list-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme changed-ns-list-log <device> [--raw-binary | -b]
+                        [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Changed Namespace List log page from an NVMe device and +provides the returned structure.

+

The <device> parameter is mandatory and must be a NVMe character device +(ex: /dev/nvme0).

+

On success, the returned Changed Namespace List log structure may be +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format or +the raw buffer may be printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw Changed Namespace List log buffer to stdout. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the Changed Namespace List Log page in a human readable format: +

    +
    +
    +
    # nvme changed-ns-list-log /dev/nvme0
    +
    +
  • +
  • +

    +Print the raw Changed Namespace List log to a file: +

    +
    +
    +
    # nvme changed-ns-list-log /dev/nvme0 --raw-binary > log.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-changed-ns-list-log.txt b/Documentation/nvme-changed-ns-list-log.txt new file mode 100644 index 0000000..4cfd065 --- /dev/null +++ b/Documentation/nvme-changed-ns-list-log.txt @@ -0,0 +1,58 @@ +nvme-changed-ns-list-log(1) +=========================== + +NAME +---- +nvme-changed-ns-list-log - Send NVMe Changed Namespace List log page + request, returns result and log. + +SYNOPSIS +-------- +[verse] +'nvme changed-ns-list-log' [--raw-binary | -b] + [--output-format= | -o ] + +DESCRIPTION +----------- +Retrieves the NVMe Changed Namespace List log page from an NVMe device and +provides the returned structure. + +The parameter is mandatory and must be a NVMe character device +(ex: /dev/nvme0). + +On success, the returned Changed Namespace List log structure may be +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format or +the raw buffer may be printed to stdout for another program to parse. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw Changed Namespace List log buffer to stdout. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Print the Changed Namespace List Log page in a human readable format: ++ +------------ +# nvme changed-ns-list-log /dev/nvme0 +------------ ++ + +* Print the raw Changed Namespace List log to a file: ++ +------------ +# nvme changed-ns-list-log /dev/nvme0 --raw-binary > log.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-compare.1 b/Documentation/nvme-compare.1 new file mode 100644 index 0000000..0f1c6ff --- /dev/null +++ b/Documentation/nvme-compare.1 @@ -0,0 +1,210 @@ +'\" t +.\" Title: nvme-compare +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-COMPARE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-compare \- Send an NVMe Compare command, provide results +.SH "SYNOPSIS" +.sp +.nf +\fInvme\-compare\fR [\-\-start\-block= | \-s ] + [\-\-block\-count= | \-c ] + [\-\-data\-size= | \-z ] + [\-\-metadata\-size= | \-y ] + [\-\-ref\-tag= | \-r ] + [\-\-data= | \-d ] + [\-\-metadata= | \-M ] + [\-\-prinfo= | \-p ] + [\-\-app\-tag\-mask= | \-m ] + [\-\-app\-tag= | \-a ] + [\-\-limited\-retry | \-l] + [\-\-force\-unit\-access | \-f] + [\-\-dir\-type= | \-T ] + [\-\-dir\-spec= | \-S ] + [\-\-dsm= | \-D ] + [\-\-show\-command | \-v] + [\-\-dry\-run | \-w] + [\-\-latency | \-t] +.fi +.SH "DESCRIPTION" +.sp +The Compare command reads the logical blocks specified by the command from the medium and compares the data read to a comparison data buffer transferred as part of the command\&. If the data read from the controller and the comparison data buffer are equivalent with no miscompares, then the command completes successfully\&. If there is any miscompare, the command completes with an error of Compare Failure\&. If metadata is provided, then a comparison is also performed for the metadata\&. +.SH "OPTIONS" +.PP +\-s , \-\-start\-block= +.RS 4 +64\-bit address of the first block to access\&. +.RE +.PP +\-c , \-\-block\-count= +.RS 4 +Number of blocks to be accessed (zero\-based)\&. +.RE +.PP +\-z , \-\-data\-size= +.RS 4 +Size of data to be compared in bytes\&. +.RE +.PP +\-y , \-\-metadata\-size= +.RS 4 +Size of metadata to be trasnferred in bytes\&. +.RE +.PP +\-r , \-\-ref\-tag= +.RS 4 +Reference Tag for Protection Information +.RE +.PP +\-d , \-\-data= +.RS 4 +Data file\&. +.RE +.PP +\-M , \-\-metadata= +.RS 4 +Metadata file\&. +.RE +.PP +\-p , \-\-prinfo= +.RS 4 +Protection Information and check field\&. +.RE +.sp ++ +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +.sp +Bit +T}:T{ +.sp +Description +T} +T{ +.sp +3 +T}:T{ +.sp +PRACT: Protection Information Action\&. When set to 1, PI is stripped/inserted on read/write when the block format\(cqs metadata size is 8\&. When set to 0, metadata is passes\&. +T} +T{ +.sp +2:0 +T}:T{ +.sp +PRCHK: Protection Information Check: +T} +T{ +.sp +2 +T}:T{ +.sp +Set to 1 enables checking the guard tag +T} +T{ +.sp +1 +T}:T{ +.sp +Set to 1 enables checking the application tag +T} +T{ +.sp +0 +T}:T{ +.sp +Set to 1 enables checking the reference tag +T} +.TE +.sp 1 +.PP +\-m , \-\-app\-tag\-mask= +.RS 4 +App Tag Mask for Protection Information +.RE +.PP +\-a , \-\-app\-tag= +.RS 4 +App Tag for Protection Information +.RE +.PP +\-l, \-\-limited\-retry +.RS 4 +Number of limited attempts to media\&. +.RE +.PP +\-f, \-\-force\-unit\-access +.RS 4 +FUA option to guarantee that data is stored to media\&. +.RE +.PP +\-T , \-\-dir\-type= +.RS 4 +Optional directive type\&. The nvme\-cli only enforces the value be in the defined range for the directive type, though the NVMe specifcation (1\&.3a) defines only one directive, 01h, for write stream idenfiers\&. +.RE +.PP +\-S , \-\-dir\-spec= +.RS 4 +Optional field for directive specifics\&. When used with write streams, this value is defined to be the write stream identifier\&. The nvme\-cli will not validate the stream requested is within the controller\(cqs capabilities\&. +.RE +.PP +\-D , \-\-dsm= +.RS 4 +The optional data set management attributes for this command\&. The argument for this is the lower 16 bits of the DSM field in a write command; the upper 16 bits of the field come from the directive specific field, if used\&. This may be used to set attributes for the LBAs being written, like access frequency, type, latency, among other things, as well as yet to be defined types\&. Please consult the NVMe specification for detailed breakdown of how to use this field\&. +.RE +.PP +\-v, \-\-show\-cmd +.RS 4 +Print out the command to be sent\&. +.RE +.PP +\-w, \-\-dry\-run +.RS 4 +Do not actually send the command\&. If want to use \-\-dry\-run option, \-\-show\-cmd option +\fImust\fR +be set\&. Otherwise \-\-dry\-run option will be +\fIignored\fR\&. +.RE +.PP +\-t, \-\-latency +.RS 4 +Print out the latency the IOCTL took (in us)\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-compare.html b/Documentation/nvme-compare.html new file mode 100644 index 0000000..e3b6857 --- /dev/null +++ b/Documentation/nvme-compare.html @@ -0,0 +1,1063 @@ + + + + + +nvme-compare(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme-compare <device> [--start-block=<slba> | -s <slba>]
+                        [--block-count=<nlb> | -c <nlb>]
+                        [--data-size=<size> | -z <size>]
+                        [--metadata-size=<metasize> | -y <metasize>]
+                        [--ref-tag=<reftag> | -r <reftag>]
+                        [--data=<data-file> | -d <data-file>]
+                        [--metadata=<meta> | -M <meta>]
+                        [--prinfo=<prinfo> | -p <prinfo>]
+                        [--app-tag-mask=<appmask> | -m <appmask>]
+                        [--app-tag=<apptag> | -a <apptag>]
+                        [--limited-retry | -l]
+                        [--force-unit-access | -f]
+                        [--dir-type=<type> | -T <type>]
+                        [--dir-spec=<spec> | -S <spec>]
+                        [--dsm=<dsm> | -D <dsm>]
+                        [--show-command | -v]
+                        [--dry-run | -w]
+                        [--latency | -t]
+
+
+
+
+
+

DESCRIPTION

+
+

The Compare command reads the logical blocks specified by the command +from the medium and compares the data read to a comparison data buffer +transferred as part of the command. If the data read from the controller +and the comparison data buffer are equivalent with no miscompares, +then the command completes successfully. If there is any miscompare, +the command completes with an error of Compare Failure. If metadata is +provided, then a comparison is also performed for the metadata.

+
+
+
+

OPTIONS

+
+
+
+-s <slba> +
+
+--start-block=<slba> +
+
+

+ 64-bit address of the first block to access. +

+
+
+-c <nlb> +
+
+--block-count=<nlb> +
+
+

+ Number of blocks to be accessed (zero-based). +

+
+
+-z <size> +
+
+--data-size=<size> +
+
+

+ Size of data to be compared in bytes. +

+
+
+-y <metasize> +
+
+--metadata-size=<metasize> +
+
+

+ Size of metadata to be trasnferred in bytes. +

+
+
+-r <reftag> +
+
+--ref-tag=<regtag> +
+
+

+ Reference Tag for Protection Information +

+
+
+-d <data-file> +
+
+--data=<data-file> +
+
+

+ Data file. +

+
+
+-M <meta> +
+
+--metadata=<meta> +
+
+

+ Metadata file. +

+
+
+-p <prinfo> +
+
+--prinfo=<prinfo> +
+
+

+ Protection Information and check field. +

+
+
+

+

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + +

Bit

Description

3

PRACT: Protection Information Action. When set to 1, PI is stripped/inserted +on read/write when the block format’s metadata size is 8. When set to 0, +metadata is passes.

2:0

PRCHK: Protection Information Check:

2

Set to 1 enables checking the guard tag

1

Set to 1 enables checking the application tag

0

Set to 1 enables checking the reference tag

+
+
+
+-m <appmask> +
+
+--app-tag-mask=<appmask> +
+
+

+ App Tag Mask for Protection Information +

+
+
+-a <apptag> +
+
+--app-tag=<apptag> +
+
+

+ App Tag for Protection Information +

+
+
+-l +
+
+--limited-retry +
+
+

+ Number of limited attempts to media. +

+
+
+-f +
+
+--force-unit-access +
+
+

+ FUA option to guarantee that data is stored to media. +

+
+
+-T <type> +
+
+--dir-type=<type> +
+
+

+ Optional directive type. The nvme-cli only enforces the value + be in the defined range for the directive type, though the NVMe + specifcation (1.3a) defines only one directive, 01h, for write + stream idenfiers. +

+
+
+-S <spec> +
+
+--dir-spec=<spec> +
+
+

+ Optional field for directive specifics. When used with + write streams, this value is defined to be the write stream + identifier. The nvme-cli will not validate the stream requested + is within the controller’s capabilities. +

+
+
+-D <dsm> +
+
+--dsm=<dsm> +
+
+

+ The optional data set management attributes for this command. The + argument for this is the lower 16 bits of the DSM field in a write + command; the upper 16 bits of the field come from the directive + specific field, if used. This may be used to set attributes for + the LBAs being written, like access frequency, type, latency, + among other things, as well as yet to be defined types. Please + consult the NVMe specification for detailed breakdown of how to + use this field. +

+
+
+-v +
+
+--show-cmd +
+
+

+ Print out the command to be sent. +

+
+
+-w +
+
+--dry-run +
+
+

+ Do not actually send the command. If want to use --dry-run option, + --show-cmd option must be set. Otherwise --dry-run option will be + ignored. +

+
+
+-t +
+
+--latency +
+
+

+ Print out the latency the IOCTL took (in us). +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-compare.txt b/Documentation/nvme-compare.txt new file mode 100644 index 0000000..9185c5f --- /dev/null +++ b/Documentation/nvme-compare.txt @@ -0,0 +1,148 @@ +nvme-compare(1) +=============== + +NAME +---- +nvme-compare - Send an NVMe Compare command, provide results + +SYNOPSIS +-------- +[verse] +'nvme-compare' [--start-block= | -s ] + [--block-count= | -c ] + [--data-size= | -z ] + [--metadata-size= | -y ] + [--ref-tag= | -r ] + [--data= | -d ] + [--metadata= | -M ] + [--prinfo= | -p ] + [--app-tag-mask= | -m ] + [--app-tag= | -a ] + [--limited-retry | -l] + [--force-unit-access | -f] + [--dir-type= | -T ] + [--dir-spec= | -S ] + [--dsm= | -D ] + [--show-command | -v] + [--dry-run | -w] + [--latency | -t] + +DESCRIPTION +----------- +The Compare command reads the logical blocks specified by the command +from the medium and compares the data read to a comparison data buffer +transferred as part of the command. If the data read from the controller +and the comparison data buffer are equivalent with no miscompares, +then the command completes successfully. If there is any miscompare, +the command completes with an error of Compare Failure. If metadata is +provided, then a comparison is also performed for the metadata. + +OPTIONS +------- +-s :: +--start-block=:: + 64-bit address of the first block to access. + +-c :: +--block-count=:: + Number of blocks to be accessed (zero-based). + +-z :: +--data-size=:: + Size of data to be compared in bytes. + +-y :: +--metadata-size=:: + Size of metadata to be trasnferred in bytes. + +-r :: +--ref-tag=:: + Reference Tag for Protection Information + +-d :: +--data=:: + Data file. + +-M :: +--metadata=:: + Metadata file. + +-p :: +--prinfo=:: + Protection Information and check field. + ++ +[] +|================= +|Bit|Description +|3|PRACT: Protection Information Action. When set to 1, PI is stripped/inserted +on read/write when the block format's metadata size is 8. When set to 0, +metadata is passes. +|2:0|PRCHK: Protection Information Check: +|2|Set to 1 enables checking the guard tag +|1|Set to 1 enables checking the application tag +|0|Set to 1 enables checking the reference tag +|================= + +-m :: +--app-tag-mask=:: + App Tag Mask for Protection Information + +-a :: +--app-tag=:: + App Tag for Protection Information + +-l:: +--limited-retry:: + Number of limited attempts to media. + +-f:: +--force-unit-access:: + FUA option to guarantee that data is stored to media. + +-T :: +--dir-type=:: + Optional directive type. The nvme-cli only enforces the value + be in the defined range for the directive type, though the NVMe + specifcation (1.3a) defines only one directive, 01h, for write + stream idenfiers. + +-S :: +--dir-spec=:: + Optional field for directive specifics. When used with + write streams, this value is defined to be the write stream + identifier. The nvme-cli will not validate the stream requested + is within the controller's capabilities. + +-D :: +--dsm=:: + The optional data set management attributes for this command. The + argument for this is the lower 16 bits of the DSM field in a write + command; the upper 16 bits of the field come from the directive + specific field, if used. This may be used to set attributes for + the LBAs being written, like access frequency, type, latency, + among other things, as well as yet to be defined types. Please + consult the NVMe specification for detailed breakdown of how to + use this field. + +-v:: +--show-cmd:: + Print out the command to be sent. + +-w:: +--dry-run:: + Do not actually send the command. If want to use --dry-run option, + --show-cmd option _must_ be set. Otherwise --dry-run option will be + _ignored_. + +-t:: +--latency:: + Print out the latency the IOCTL took (in us). + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-connect-all.1 b/Documentation/nvme-connect-all.1 new file mode 100644 index 0000000..f829935 --- /dev/null +++ b/Documentation/nvme-connect-all.1 @@ -0,0 +1,253 @@ +'\" t +.\" Title: nvme-connect-all +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/29/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-CONNECT\-ALL" "1" "04/29/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-connect-all \- Discover and Connect to Fabrics controllers\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme connect\-all\fR + [\-\-transport= | \-t ] + [\-\-traddr= | \-a ] + [\-\-trsvcid= | \-s ] + [\-\-host\-traddr= | \-w ] + [\-\-hostnqn= | \-q ] + [\-\-hostid= | \-I ] + [\-\-raw= | \-r ] + [\-\-keep\-alive\-tmo=<#> | \-k <#>] + [\-\-reconnect\-delay=<#> | \-c <#>] + [\-\-ctrl\-loss\-tmo=<#> | \-l <#>] + [\-\-hdr\-digest | \-g] + [\-\-data\-digest | \-G] + [\-\-nr\-io\-queues=<#> | \-i <#>] + [\-\-nr\-write\-queues=<#> | \-W <#>] + [\-\-nr\-poll\-queues=<#> | \-P <#>] + [\-\-queue\-size=<#> | \-Q <#>] + [\-\-matching | \-m] + [\-\-persistent | \-p] + [\-\-quiet | \-q] +.fi +.SH "DESCRIPTION" +.sp +Send one or more Discovery requests to a NVMe over Fabrics Discovery Controller, and create controllers for the returned discovery records\&. +.sp +If no parameters are given, then \fInvme connect\-all\fR will attempt to find a /etc/nvme/discovery\&.conf file to use to supply a list of connect\-all commands to run\&. If no /etc/nvme/discovery\&.conf file exists, the command will quit with an error\&. +.sp +Otherwise a specific Discovery Controller should be specified using the \-\-transport, \-\-traddr and if necessary the \-\-trsvcid and a Diѕcovery request will be sent to the specified Discovery Controller\&. +.sp +See the documentation for the nvme\-discover(1) command for further background\&. +.SH "OPTIONS" +.PP +\-t , \-\-transport= +.RS 4 +This field specifies the network fabric being used for a NVMe\-over\-Fabrics network\&. Current string values include: +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +rdma +T}:T{ +The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc) +T} +T{ +fc +T}:T{ +\fBWIP\fR +The network fabric is a Fibre Channel network\&. +T} +T{ +loop +T}:T{ +Connect to a NVMe over Fabrics target on the local host +T} +.TE +.sp 1 +.RE +.PP +\-a , \-\-traddr= +.RS 4 +This field specifies the network address of the Discovery Controller\&. For transports using IP addressing (e\&.g\&. rdma) this should be an IP\-based address (ex\&. IPv4)\&. +.RE +.PP +\-s , \-\-trsvcid= +.RS 4 +This field specifies the transport service id\&. For transports using IP addressing (e\&.g\&. rdma) this field is the port number\&. By default, the IP port number for the RDMA transport is 4420\&. +.RE +.PP +\-w , \-\-host\-traddr= +.RS 4 +This field specifies the network address used on the host to connect to the Discovery Controller\&. +.RE +.PP +\-q , \-\-hostnqn= +.RS 4 +Overrides the default Host NQN that identifies the NVMe Host\&. If this option is not specified, the default is read from /etc/nvme/hostnqn first\&. If that does not exist, the autogenerated NQN value from the NVMe Host kernel module is used next\&. The Host NQN uniquely identifies the NVMe Host, and may be used by the the Discovery Controller to control what NVMe Target resources are allocated to the NVMe Host for a connection\&. +.RE +.PP +\-I , \-\-hostid= +.RS 4 +UUID(Universally Unique Identifier) to be discovered which should be formatted\&. +.RE +.PP +\-r , \-\-raw= +.RS 4 +This field will take the output of the +\fInvme connect\-all\fR +command and dump it to a raw binary file\&. By default +\fInvme connect\-all\fR +will dump the output to stdout\&. +.RE +.PP +\-k <#>, \-\-keep\-alive\-tmo=<#> +.RS 4 +Overrides the default keep alive timeout (in seconds)\&. This option will be ignored for discovery, but will be passed on to the subsequent connect call\&. +.RE +.PP +\-c <#>, \-\-reconnect\-delay=<#> +.RS 4 +Overrides the default delay (in seconds) before reconnect is attempted after a connect loss\&. +.RE +.PP +\-l <#>, \-\-ctrl\-loss\-tmo=<#> +.RS 4 +Overrides the default controller loss timeout period (in seconds)\&. +.RE +.PP +\-g, \-\-hdr\-digest +.RS 4 +Generates/verifies header digest (TCP)\&. +.RE +.PP +\-G, \-\-data\-digest +.RS 4 +Generates/verifies data digest (TCP)\&. +.RE +.PP +\-i <#>, \-\-nr\-io\-queues=<#> +.RS 4 +Overrides the default number of I/O queues create by the driver\&. This option will be ignored for discovery, but will be passed on to the subsequent connect call\&. +.RE +.PP +\-W <#>, \-\-nr\-write\-queues=<#> +.RS 4 +Adds additional queues that will be used for write I/O\&. +.RE +.PP +\-P <#>, \-\-nr\-poll\-queues=<#> +.RS 4 +Adds additional queues that will be used for polling latency sensitive I/O\&. +.RE +.PP +\-Q <#>, \-\-queue\-size=<#> +.RS 4 +Overrides the default number of elements in the I/O queues created by the driver\&. This option will be ignored for discovery, but will be passed on to the subsequent connect call\&. +.RE +.PP +\-m, \-\-matching +.RS 4 +If a traddr was specified on the command line or in the configuration file, only create controllers for discovery records that match the given traddr, rather than for all entries in the discovery log page\&. +.RE +.PP +\-p, \-\-persistent +.RS 4 +Don\(cqt remove the discovery controller after retrieving the discovery log page\&. +.RE +.PP +\-q, \-\-quiet +.RS 4 +Suppress error messages\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Connect to all records returned by the Discover Controller with IP4 address 192\&.168\&.1\&.3 for all resources allocated for NVMe Host name host1\-rogue\-nqn on the RDMA network\&. Port 4420 is used by default: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme connect\-all \-\-transport=rdma \-\-traddr=192\&.168\&.1\&.3 \e +\-\-hostnqn=host1\-rogue\-nqn +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Issue a +\fInvme connect\-all\fR +command using a /etc/nvme/discovery\&.conf file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# Machine default \*(Aqnvme discover\*(Aq commands\&. Query the +# Discovery Controller\*(Aqs two ports (some resources may only +# be accessible on a single port)\&. Note an official +# nqn (Host) name defined in the NVMe specification is being used +# in this example\&. +\-t rdma \-a 192\&.168\&.69\&.33 \-s 4420 \-q nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432 +\-t rdma \-a 192\&.168\&.1\&.4 \-s 4420 \-q nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432 + +At the prompt type "nvme connect\-all"\&. +.fi +.if n \{\ +.RE +.\} +.RE +.SH "SEE ALSO" +.sp +nvme\-discover(1) nvme\-connect(1) +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-connect-all.html b/Documentation/nvme-connect-all.html new file mode 100644 index 0000000..b5f22f7 --- /dev/null +++ b/Documentation/nvme-connect-all.html @@ -0,0 +1,1118 @@ + + + + + + +nvme-connect-all(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme connect-all
+                [--transport=<trtype>     | -t <trtype>]
+                [--traddr=<traddr>        | -a <traddr>]
+                [--trsvcid=<trsvcid>      | -s <trsvcid>]
+                [--host-traddr=<traddr>   | -w <traddr>]
+                [--hostnqn=<hostnqn>      | -q <hostnqn>]
+                [--hostid=<hostid>        | -I <hostid>]
+                [--raw=<filename>         | -r <filename>]
+                [--keep-alive-tmo=<#>     | -k <#>]
+                [--reconnect-delay=<#>    | -c <#>]
+                [--ctrl-loss-tmo=<#>      | -l <#>]
+                [--hdr-digest             | -g]
+                [--data-digest            | -G]
+                [--nr-io-queues=<#>       | -i <#>]
+                [--nr-write-queues=<#>    | -W <#>]
+                [--nr-poll-queues=<#>     | -P <#>]
+                [--queue-size=<#>         | -Q <#>]
+                [--matching               | -m]
+                [--persistent             | -p]
+                [--quiet                  | -q]
+
+
+
+
+
+

DESCRIPTION

+
+

Send one or more Discovery requests to a NVMe over Fabrics Discovery +Controller, and create controllers for the returned discovery records.

+

If no parameters are given, then nvme connect-all will attempt to +find a /etc/nvme/discovery.conf file to use to supply a list of +connect-all commands to run. If no /etc/nvme/discovery.conf file exists, +the command will quit with an error.

+

Otherwise a specific Discovery Controller should be specified using the +--transport, --traddr and if necessary the --trsvcid and a Diѕcovery +request will be sent to the specified Discovery Controller.

+

See the documentation for the nvme-discover(1) command for further +background.

+
+
+
+

OPTIONS

+
+
+
+-t <trtype> +
+
+--transport=<trtype> +
+
+

+ This field specifies the network fabric being used for + a NVMe-over-Fabrics network. Current string values include: +

+
+ +++ + + + + + + + + + + + + + + + + + +

Value

Definition

rdma

The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc)

fc

WIP The network fabric is a Fibre Channel network.

loop

Connect to a NVMe over Fabrics target on the local host

+
+
+
+-a <traddr> +
+
+--traddr=<traddr> +
+
+

+ This field specifies the network address of the Discovery Controller. + For transports using IP addressing (e.g. rdma) this should be an + IP-based address (ex. IPv4). +

+
+
+-s <trsvcid> +
+
+--trsvcid=<trsvcid> +
+
+

+ This field specifies the transport service id. For transports using IP + addressing (e.g. rdma) this field is the port number. By default, the IP + port number for the RDMA transport is 4420. +

+
+
+-w <traddr> +
+
+--host-traddr=<traddr> +
+
+

+ This field specifies the network address used on the host to connect + to the Discovery Controller. +

+
+
+-q <hostnqn> +
+
+--hostnqn=<hostnqn> +
+
+

+ Overrides the default Host NQN that identifies the NVMe Host. + If this option is not specified, the default is read from + /etc/nvme/hostnqn first. If that does not exist, the autogenerated + NQN value from the NVMe Host kernel module is used next. + The Host NQN uniquely identifies the NVMe Host, and may be used by the + the Discovery Controller to control what NVMe Target resources are + allocated to the NVMe Host for a connection. +

+
+
+-I <hostid> +
+
+--hostid=<hostid> +
+
+

+ UUID(Universally Unique Identifier) to be discovered which should be + formatted. +

+
+
+-r <filename> +
+
+--raw=<filename> +
+
+

+ This field will take the output of the nvme connect-all command + and dump it to a raw binary file. By default nvme connect-all will + dump the output to stdout. +

+
+
+-k <#> +
+
+--keep-alive-tmo=<#> +
+
+

+ Overrides the default keep alive timeout (in seconds). This + option will be ignored for discovery, but will be passed on to + the subsequent connect call. +

+
+
+-c <#> +
+
+--reconnect-delay=<#> +
+
+

+ Overrides the default delay (in seconds) before reconnect is attempted + after a connect loss. +

+
+
+-l <#> +
+
+--ctrl-loss-tmo=<#> +
+
+

+ Overrides the default controller loss timeout period (in seconds). +

+
+
+-g +
+
+--hdr-digest +
+
+

+ Generates/verifies header digest (TCP). +

+
+
+-G +
+
+--data-digest +
+
+

+ Generates/verifies data digest (TCP). +

+
+
+-i <#> +
+
+--nr-io-queues=<#> +
+
+

+ Overrides the default number of I/O queues create by the driver. + This option will be ignored for discovery, but will be passed on + to the subsequent connect call. +

+
+
+-W <#> +
+
+--nr-write-queues=<#> +
+
+

+ Adds additional queues that will be used for write I/O. +

+
+
+-P <#> +
+
+--nr-poll-queues=<#> +
+
+

+ Adds additional queues that will be used for polling latency sensitive I/O. +

+
+
+-Q <#> +
+
+--queue-size=<#> +
+
+

+ Overrides the default number of elements in the I/O queues created + by the driver. This option will be ignored for discovery, but will be + passed on to the subsequent connect call. +

+
+
+-m +
+
+--matching +
+
+

+ If a traddr was specified on the command line or in the configuration + file, only create controllers for discovery records that match the + given traddr, rather than for all entries in the discovery log page. +

+
+
+-p +
+
+--persistent +
+
+

+ Don’t remove the discovery controller after retrieving the discovery + log page. +

+
+
+-q +
+
+--quiet +
+
+

+ Suppress error messages. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Connect to all records returned by the Discover Controller with IP4 address +192.168.1.3 for all resources allocated for NVMe Host name host1-rogue-nqn on +the RDMA network. Port 4420 is used by default: +

    +
    +
    +
    # nvme connect-all --transport=rdma --traddr=192.168.1.3 \
    +--hostnqn=host1-rogue-nqn
    +
    +
  • +
  • +

    +Issue a nvme connect-all command using a /etc/nvme/discovery.conf file: +

    +
    +
    +
    # Machine default 'nvme discover' commands.  Query the
    +# Discovery Controller's two ports (some resources may only
    +# be accessible on a single port).  Note an official
    +# nqn (Host) name defined in the NVMe specification is being used
    +# in this example.
    +-t rdma -a 192.168.69.33 -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432
    +-t rdma -a 192.168.1.4   -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432
    +
    +At the prompt type "nvme connect-all".
    +
    +
  • +
+
+
+
+

SEE ALSO

+
+

nvme-discover(1) +nvme-connect(1)

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-connect-all.txt b/Documentation/nvme-connect-all.txt new file mode 100644 index 0000000..63d3c8f --- /dev/null +++ b/Documentation/nvme-connect-all.txt @@ -0,0 +1,194 @@ +nvme-connect-all(1) +=================== + +NAME +---- +nvme-connect-all - Discover and Connect to Fabrics controllers. + +SYNOPSIS +-------- +[verse] +'nvme connect-all' + [--transport= | -t ] + [--traddr= | -a ] + [--trsvcid= | -s ] + [--host-traddr= | -w ] + [--hostnqn= | -q ] + [--hostid= | -I ] + [--raw= | -r ] + [--keep-alive-tmo=<#> | -k <#>] + [--reconnect-delay=<#> | -c <#>] + [--ctrl-loss-tmo=<#> | -l <#>] + [--hdr-digest | -g] + [--data-digest | -G] + [--nr-io-queues=<#> | -i <#>] + [--nr-write-queues=<#> | -W <#>] + [--nr-poll-queues=<#> | -P <#>] + [--queue-size=<#> | -Q <#>] + [--matching | -m] + [--persistent | -p] + [--quiet | -q] + +DESCRIPTION +----------- +Send one or more Discovery requests to a NVMe over Fabrics Discovery +Controller, and create controllers for the returned discovery records. + +If no parameters are given, then 'nvme connect-all' will attempt to +find a /etc/nvme/discovery.conf file to use to supply a list of +connect-all commands to run. If no /etc/nvme/discovery.conf file exists, +the command will quit with an error. + +Otherwise a specific Discovery Controller should be specified using the +--transport, --traddr and if necessary the --trsvcid and a Diѕcovery +request will be sent to the specified Discovery Controller. + +See the documentation for the nvme-discover(1) command for further +background. + +OPTIONS +------- +-t :: +--transport=:: + This field specifies the network fabric being used for + a NVMe-over-Fabrics network. Current string values include: ++ +[] +|================= +|Value|Definition +|rdma|The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc) +|fc |*WIP* The network fabric is a Fibre Channel network. +|loop|Connect to a NVMe over Fabrics target on the local host +|================= + +-a :: +--traddr=:: + This field specifies the network address of the Discovery Controller. + For transports using IP addressing (e.g. rdma) this should be an + IP-based address (ex. IPv4). + +-s :: +--trsvcid=:: + This field specifies the transport service id. For transports using IP + addressing (e.g. rdma) this field is the port number. By default, the IP + port number for the RDMA transport is 4420. + +-w :: +--host-traddr=:: + This field specifies the network address used on the host to connect + to the Discovery Controller. + +-q :: +--hostnqn=:: + Overrides the default Host NQN that identifies the NVMe Host. + If this option is not specified, the default is read from + /etc/nvme/hostnqn first. If that does not exist, the autogenerated + NQN value from the NVMe Host kernel module is used next. + The Host NQN uniquely identifies the NVMe Host, and may be used by the + the Discovery Controller to control what NVMe Target resources are + allocated to the NVMe Host for a connection. + +-I :: +--hostid=:: + UUID(Universally Unique Identifier) to be discovered which should be + formatted. + +-r :: +--raw=:: + This field will take the output of the 'nvme connect-all' command + and dump it to a raw binary file. By default 'nvme connect-all' will + dump the output to stdout. + +-k <#>:: +--keep-alive-tmo=<#>:: + Overrides the default keep alive timeout (in seconds). This + option will be ignored for discovery, but will be passed on to + the subsequent connect call. + +-c <#>:: +--reconnect-delay=<#>:: + Overrides the default delay (in seconds) before reconnect is attempted + after a connect loss. + +-l <#>:: +--ctrl-loss-tmo=<#>:: + Overrides the default controller loss timeout period (in seconds). + +-g:: +--hdr-digest:: + Generates/verifies header digest (TCP). + +-G:: +--data-digest:: + Generates/verifies data digest (TCP). + +-i <#>:: +--nr-io-queues=<#>:: + Overrides the default number of I/O queues create by the driver. + This option will be ignored for discovery, but will be passed on + to the subsequent connect call. + +-W <#>:: +--nr-write-queues=<#>:: + Adds additional queues that will be used for write I/O. + +-P <#>:: +--nr-poll-queues=<#>:: + Adds additional queues that will be used for polling latency sensitive I/O. + +-Q <#>:: +--queue-size=<#>:: + Overrides the default number of elements in the I/O queues created + by the driver. This option will be ignored for discovery, but will be + passed on to the subsequent connect call. + +-m:: +--matching:: + If a traddr was specified on the command line or in the configuration + file, only create controllers for discovery records that match the + given traddr, rather than for all entries in the discovery log page. + +-p:: +--persistent:: + Don't remove the discovery controller after retrieving the discovery + log page. + +-q:: +--quiet:: + Suppress error messages. + + +EXAMPLES +-------- +* Connect to all records returned by the Discover Controller with IP4 address +192.168.1.3 for all resources allocated for NVMe Host name host1-rogue-nqn on +the RDMA network. Port 4420 is used by default: ++ +------------ +# nvme connect-all --transport=rdma --traddr=192.168.1.3 \ +--hostnqn=host1-rogue-nqn +------------ ++ +* Issue a 'nvme connect-all' command using a /etc/nvme/discovery.conf file: ++ +----------- +# Machine default 'nvme discover' commands. Query the +# Discovery Controller's two ports (some resources may only +# be accessible on a single port). Note an official +# nqn (Host) name defined in the NVMe specification is being used +# in this example. +-t rdma -a 192.168.69.33 -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 +-t rdma -a 192.168.1.4 -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 + +At the prompt type "nvme connect-all". + +------------ + +SEE ALSO +-------- +nvme-discover(1) +nvme-connect(1) + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-connect.1 b/Documentation/nvme-connect.1 new file mode 100644 index 0000000..9170d01 --- /dev/null +++ b/Documentation/nvme-connect.1 @@ -0,0 +1,220 @@ +'\" t +.\" Title: nvme-connect +.\" Author: [see the "AUTHORS" section] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-CONNECT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-connect \- Connect to a Fabrics controller\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme connect\fR + [\-\-transport= | \-t ] + [\-\-nqn= | \-n ] + [\-\-traddr= | \-a ] + [\-\-trsvcid= | \-s ] + [\-\-host\-traddr= | \-w ] + [\-\-hostnqn= | \-q ] + [\-\-hostid= | \-I ] + [\-\-nr\-io\-queues=<#> | \-i <#>] + [\-\-nr\-write\-queues=<#> | \-W <#>] + [\-\-nr\-poll\-queues=<#> | \-P <#>] + [\-\-queue\-size=<#> | \-Q <#>] + [\-\-keep\-alive\-tmo=<#> | \-k <#>] + [\-\-reconnect\-delay=<#> | \-c <#>] + [\-\-ctrl\-loss\-tmo=<#> | \-l <#>] + [\-\-duplicate\-connect | \-D] + [\-\-disable\-sqflow | \-d] + [\-\-hdr\-digest | \-g] + [\-\-data\-digest | \-G] +.fi +.SH "DESCRIPTION" +.sp +Create a transport connection to a remote system (specified by \-\-traddr and \-\-trsvcid) and create a NVMe over Fabrics controller for the NVMe subsystem specified by the \-\-nqn option\&. +.SH "OPTIONS" +.PP +\-t , \-\-transport= +.RS 4 +This field specifies the network fabric being used for a NVMe\-over\-Fabrics network\&. Current string values include: +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +rdma +T}:T{ +The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc) +T} +T{ +fc +T}:T{ +\fBWIP\fR +The network fabric is a Fibre Channel network\&. +T} +T{ +loop +T}:T{ +Connect to a NVMe over Fabrics target on the local host +T} +.TE +.sp 1 +.RE +.PP +\-n , \-\-nqn +.RS 4 +This field specifies the name for the NVMe subsystem to connect to\&. +.RE +.PP +\-a , \-\-traddr= +.RS 4 +This field specifies the network address of the Controller\&. For transports using IP addressing (e\&.g\&. rdma) this should be an IP\-based address (ex\&. IPv4)\&. +.RE +.PP +\-s , \-\-trsvcid= +.RS 4 +This field specifies the transport service id\&. For transports using IP addressing (e\&.g\&. rdma) this field is the port number\&. By default, the IP port number for the RDMA transport is 4420\&. +.RE +.PP +\-w , \-\-host\-traddr= +.RS 4 +This field specifies the network address used on the host to connect to the Controller\&. +.RE +.PP +\-q , \-\-hostnqn= +.RS 4 +Overrides the default Host NQN that identifies the NVMe Host\&. If this option is not specified, the default is read from /etc/nvme/hostnqn first\&. If that does not exist, the autogenerated NQN value from the NVMe Host kernel module is used next\&. The Host NQN uniquely identifies the NVMe Host\&. +.RE +.PP +\-I , \-\-hostid= +.RS 4 +UUID(Universally Unique Identifier) to be discovered which should be formatted\&. +.RE +.PP +\-i <#>, \-\-nr\-io\-queues=<#> +.RS 4 +Overrides the default number of I/O queues create by the driver\&. +.RE +.PP +\-W <#>, \-\-nr\-write\-queues=<#> +.RS 4 +Adds additional queues that will be used for write I/O\&. +.RE +.PP +\-P <#>, \-\-nr\-poll\-queues=<#> +.RS 4 +Adds additional queues that will be used for polling latency sensitive I/O\&. +.RE +.PP +\-Q <#>, \-\-queue\-size=<#> +.RS 4 +Overrides the default number of elements in the I/O queues created by the driver\&. +.RE +.PP +\-k <#>, \-\-keep\-alive\-tmo=<#> +.RS 4 +Overrides the default keep alive timeout (in seconds)\&. +.RE +.PP +\-c <#>, \-\-reconnect\-delay=<#> +.RS 4 +Overrides the default delay (in seconds) before reconnect is attempted after a connect loss\&. +.RE +.PP +\-l <#>, \-\-ctrl\-loss\-tmo=<#> +.RS 4 +Overrides the default controller loss timeout period (in seconds)\&. +.RE +.PP +\-D, \-\-duplicate\-connect +.RS 4 +Allows duplicated connections between same trnsport host and subsystem port\&. +.RE +.PP +\-d, \-\-disable\-sqflow +.RS 4 +Disables SQ flow control to omit head doorbell update for submission queues when sending nvme completions\&. +.RE +.PP +\-g, \-\-hdr\-digest +.RS 4 +Generates/verifies header digest (TCP)\&. +.RE +.PP +\-G, \-\-data\-digest +.RS 4 +Generates/verifies data digest (TCP)\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Connect to a subsystem named nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432 on the IP4 address 192\&.168\&.1\&.3\&. Port 4420 is used by default: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme connect \-\-transport=rdma \-\-traddr=192\&.168\&.1\&.3 \e +\-\-nqn=nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "SEE ALSO" +.sp +nvme\-discover(1) nvme\-connect\-all(1) +.SH "AUTHORS" +.sp +This was co\-written by \m[blue]\fBJay Freyensee\fR\m[]\&\s-2\u[1]\d\s+2 and \m[blue]\fBChristoph Hellwig\fR\m[]\&\s-2\u[2]\d\s+2 +.SH "NVME" +.sp +Part of the nvme\-user suite +.SH "NOTES" +.IP " 1." 4 +Jay Freyensee +.RS 4 +\%mailto:james.p.freyensee@intel.com +.RE +.IP " 2." 4 +Christoph Hellwig +.RS 4 +\%mailto:hch@lst.de +.RE diff --git a/Documentation/nvme-connect.html b/Documentation/nvme-connect.html new file mode 100644 index 0000000..3387333 --- /dev/null +++ b/Documentation/nvme-connect.html @@ -0,0 +1,1077 @@ + + + + + + +nvme-connect(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme connect
+                [--transport=<trtype>     | -t <trtype>]
+                [--nqn=<subnqn>           | -n <subnqn>]
+                [--traddr=<traddr>        | -a <traddr>]
+                [--trsvcid=<trsvcid>      | -s <trsvcid>]
+                [--host-traddr=<traddr>   | -w <traddr>]
+                [--hostnqn=<hostnqn>      | -q <hostnqn>]
+                [--hostid=<hostid>        | -I <hostid>]
+                [--nr-io-queues=<#>       | -i <#>]
+                [--nr-write-queues=<#>    | -W <#>]
+                [--nr-poll-queues=<#>     | -P <#>]
+                [--queue-size=<#>         | -Q <#>]
+                [--keep-alive-tmo=<#>     | -k <#>]
+                [--reconnect-delay=<#>    | -c <#>]
+                [--ctrl-loss-tmo=<#>      | -l <#>]
+                [--duplicate-connect      | -D]
+                [--disable-sqflow         | -d]
+                [--hdr-digest             | -g]
+                [--data-digest            | -G]
+
+
+
+
+
+

DESCRIPTION

+
+

Create a transport connection to a remote system (specified by --traddr and +--trsvcid) and create a NVMe over Fabrics controller for the NVMe subsystem +specified by the --nqn option.

+
+
+
+

OPTIONS

+
+
+
+-t <trtype> +
+
+--transport=<trtype> +
+
+

+ This field specifies the network fabric being used for + a NVMe-over-Fabrics network. Current string values include: +

+
+ +++ + + + + + + + + + + + + + + + + + +

Value

Definition

rdma

The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc)

fc

WIP The network fabric is a Fibre Channel network.

loop

Connect to a NVMe over Fabrics target on the local host

+
+
+
+-n <subnqn> +
+
+--nqn <subnqn> +
+
+

+ This field specifies the name for the NVMe subsystem to connect to. +

+
+
+-a <traddr> +
+
+--traddr=<traddr> +
+
+

+ This field specifies the network address of the Controller. + For transports using IP addressing (e.g. rdma) this should be an + IP-based address (ex. IPv4). +

+
+
+-s <trsvcid> +
+
+--trsvcid=<trsvcid> +
+
+

+ This field specifies the transport service id. For transports using IP + addressing (e.g. rdma) this field is the port number. By default, the IP + port number for the RDMA transport is 4420. +

+
+
+-w <traddr> +
+
+--host-traddr=<traddr> +
+
+

+ This field specifies the network address used on the host to connect + to the Controller. +

+
+
+-q <hostnqn> +
+
+--hostnqn=<hostnqn> +
+
+

+ Overrides the default Host NQN that identifies the NVMe Host. + If this option is not specified, the default is read from + /etc/nvme/hostnqn first. If that does not exist, the autogenerated + NQN value from the NVMe Host kernel module is used next. + The Host NQN uniquely identifies the NVMe Host. +

+
+
+-I <hostid> +
+
+--hostid=<hostid> +
+
+

+ UUID(Universally Unique Identifier) to be discovered which should be + formatted. +

+
+
+-i <#> +
+
+--nr-io-queues=<#> +
+
+

+ Overrides the default number of I/O queues create by the driver. +

+
+
+-W <#> +
+
+--nr-write-queues=<#> +
+
+

+ Adds additional queues that will be used for write I/O. +

+
+
+-P <#> +
+
+--nr-poll-queues=<#> +
+
+

+ Adds additional queues that will be used for polling latency sensitive I/O. +

+
+
+-Q <#> +
+
+--queue-size=<#> +
+
+

+ Overrides the default number of elements in the I/O queues created + by the driver. +

+
+
+-k <#> +
+
+--keep-alive-tmo=<#> +
+
+

+ Overrides the default keep alive timeout (in seconds). +

+
+
+-c <#> +
+
+--reconnect-delay=<#> +
+
+

+ Overrides the default delay (in seconds) before reconnect is attempted + after a connect loss. +

+
+
+-l <#> +
+
+--ctrl-loss-tmo=<#> +
+
+

+ Overrides the default controller loss timeout period (in seconds). +

+
+
+-D +
+
+--duplicate-connect +
+
+

+ Allows duplicated connections between same trnsport host and subsystem + port. +

+
+
+-d +
+
+--disable-sqflow +
+
+

+ Disables SQ flow control to omit head doorbell update for submission + queues when sending nvme completions. +

+
+
+-g +
+
+--hdr-digest +
+
+

+ Generates/verifies header digest (TCP). +

+
+
+-G +
+
+--data-digest +
+
+

+ Generates/verifies data digest (TCP). +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Connect to a subsystem named nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 +on the IP4 address 192.168.1.3. Port 4420 is used by default: +

    +
    +
    +
    # nvme connect --transport=rdma --traddr=192.168.1.3 \
    +--nqn=nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432
    +
    +
  • +
+
+
+
+

SEE ALSO

+
+

nvme-discover(1) +nvme-connect-all(1)

+
+
+
+

AUTHORS

+
+

This was co-written by Jay Freyensee +and Christoph Hellwig

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-connect.txt b/Documentation/nvme-connect.txt new file mode 100644 index 0000000..3f12ec0 --- /dev/null +++ b/Documentation/nvme-connect.txt @@ -0,0 +1,157 @@ +nvme-connect(1) +=============== + +NAME +---- +nvme-connect - Connect to a Fabrics controller. + +SYNOPSIS +-------- +[verse] +'nvme connect' + [--transport= | -t ] + [--nqn= | -n ] + [--traddr= | -a ] + [--trsvcid= | -s ] + [--host-traddr= | -w ] + [--hostnqn= | -q ] + [--hostid= | -I ] + [--nr-io-queues=<#> | -i <#>] + [--nr-write-queues=<#> | -W <#>] + [--nr-poll-queues=<#> | -P <#>] + [--queue-size=<#> | -Q <#>] + [--keep-alive-tmo=<#> | -k <#>] + [--reconnect-delay=<#> | -c <#>] + [--ctrl-loss-tmo=<#> | -l <#>] + [--duplicate-connect | -D] + [--disable-sqflow | -d] + [--hdr-digest | -g] + [--data-digest | -G] + +DESCRIPTION +----------- +Create a transport connection to a remote system (specified by --traddr and +--trsvcid) and create a NVMe over Fabrics controller for the NVMe subsystem +specified by the --nqn option. + +OPTIONS +------- +-t :: +--transport=:: + This field specifies the network fabric being used for + a NVMe-over-Fabrics network. Current string values include: ++ +[] +|================= +|Value|Definition +|rdma|The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc) +|fc |*WIP* The network fabric is a Fibre Channel network. +|loop|Connect to a NVMe over Fabrics target on the local host +|================= + +-n :: +--nqn :: + This field specifies the name for the NVMe subsystem to connect to. + +-a :: +--traddr=:: + This field specifies the network address of the Controller. + For transports using IP addressing (e.g. rdma) this should be an + IP-based address (ex. IPv4). + +-s :: +--trsvcid=:: + This field specifies the transport service id. For transports using IP + addressing (e.g. rdma) this field is the port number. By default, the IP + port number for the RDMA transport is 4420. + +-w :: +--host-traddr=:: + This field specifies the network address used on the host to connect + to the Controller. + +-q :: +--hostnqn=:: + Overrides the default Host NQN that identifies the NVMe Host. + If this option is not specified, the default is read from + /etc/nvme/hostnqn first. If that does not exist, the autogenerated + NQN value from the NVMe Host kernel module is used next. + The Host NQN uniquely identifies the NVMe Host. + +-I :: +--hostid=:: + UUID(Universally Unique Identifier) to be discovered which should be + formatted. + +-i <#>:: +--nr-io-queues=<#>:: + Overrides the default number of I/O queues create by the driver. + +-W <#>:: +--nr-write-queues=<#>:: + Adds additional queues that will be used for write I/O. + +-P <#>:: +--nr-poll-queues=<#>:: + Adds additional queues that will be used for polling latency sensitive I/O. + +-Q <#>:: +--queue-size=<#>:: + Overrides the default number of elements in the I/O queues created + by the driver. + +-k <#>:: +--keep-alive-tmo=<#>:: + Overrides the default keep alive timeout (in seconds). + +-c <#>:: +--reconnect-delay=<#>:: + Overrides the default delay (in seconds) before reconnect is attempted + after a connect loss. + +-l <#>:: +--ctrl-loss-tmo=<#>:: + Overrides the default controller loss timeout period (in seconds). + +-D:: +--duplicate-connect:: + Allows duplicated connections between same trnsport host and subsystem + port. + +-d:: +--disable-sqflow:: + Disables SQ flow control to omit head doorbell update for submission + queues when sending nvme completions. + +-g:: +--hdr-digest:: + Generates/verifies header digest (TCP). + +-G:: +--data-digest:: + Generates/verifies data digest (TCP). + +EXAMPLES +-------- +* Connect to a subsystem named nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 +on the IP4 address 192.168.1.3. Port 4420 is used by default: ++ +------------ +# nvme connect --transport=rdma --traddr=192.168.1.3 \ +--nqn=nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 +------------ + +SEE ALSO +-------- +nvme-discover(1) +nvme-connect-all(1) + + +AUTHORS +------- +This was co-written by mailto:james.p.freyensee@intel.com[Jay Freyensee] +and mailto:hch@lst.de[Christoph Hellwig] + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-create-ns.1 b/Documentation/nvme-create-ns.1 new file mode 100644 index 0000000..7f358c1 --- /dev/null +++ b/Documentation/nvme-create-ns.1 @@ -0,0 +1,102 @@ +'\" t +.\" Title: nvme-create-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-CREATE\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-create-ns \- Send NVMe Namespace management command to create namespace, returns results\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme create\-ns\fR [\-\-nsze= | \-s ] + [\-\-ncap= | \-c ] + [\-\-flbas= | \-f ] + [\-\-dps= | \-d ] + [\-\-nmic= | \-m ] + [\-\-anagrp\-id= | \-a ] + [\-\-nvmset\-id= | \-i ] + [\-\-block\-size= | \-b ] + [\-\-timeout= | \-t ] +DESCRIPTION +.fi +.sp +.nf +For the NVMe device given, sends a namespace management command to create +the namespace with the requested settings\&. On success, the namespace +identifier assigned by the controller is returned\&. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. + +OPTIONS +.fi +.PP +\-s, \-\-nsze +.RS 4 +The namespace size\&. +.RE +.PP +\-c, \-\-ncap +.RS 4 +The namespace capacity\&. +.RE +.PP +\-f, \-\-flbas +.RS 4 +The namespace formatted logical block size setting\&. Conflicts with \-\-block\-size argument\&. +.RE +.PP +\-d, \-\-dps +.RS 4 +The data protection settings\&. +.RE +.PP +\-m, \-\-nmic +.RS 4 +Namespace multipath and sharing capabilities\&. +.RE +.PP +\-a, \-\-anagrp\-id +.RS 4 +ANA Gorup Identifier\&. If this value is 0h specifies that the controller determines the value to use +.RE +.PP +\-i , \-\-nvmset\-id= +.RS 4 +This field specifies the identifier of the NVM Set\&. +.RE +.PP +\-b, \-\-block\-size +.RS 4 +Target block size the new namespace should be formatted as\&. Potential FLBAS values will be values will be scanned and the lowest numbered will be selected for the create\-ns operation\&. Conflicts with \-\-flbas argument\&. +.RE +.SH "EXAMPLES" +.sp +No examples provided yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-create-ns.html b/Documentation/nvme-create-ns.html new file mode 100644 index 0000000..1ecc66e --- /dev/null +++ b/Documentation/nvme-create-ns.html @@ -0,0 +1,888 @@ + + + + + +nvme-create-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme create-ns <device> [--nsze=<nsze> | -s <nsze>]
+                        [--ncap=<ncap> | -c <ncap>]
+                        [--flbas=<flbas> | -f <flbas>]
+                        [--dps=<dps> | -d <dps>]
+                        [--nmic=<nmic> | -m <nmic>]
+                        [--anagrp-id=<anagrpid> | -a <anagrpid>]
+                        [--nvmset-id=<nvmsetid> | -i <nvmsetid>]
+                        [--block-size=<block-size> | -b <block-size>]
+                        [--timeout=<timeout> | -t <timeout>]
+DESCRIPTION
+
+
+
+
+
For the NVMe device given, sends a namespace management command to create
+the namespace with the requested settings. On success, the namespace
+identifier assigned by the controller is returned.
+
+The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
+
+OPTIONS
+
+
+
+-s +
+
+--nsze +
+
+

+ The namespace size. +

+
+
+-c +
+
+--ncap +
+
+

+ The namespace capacity. +

+
+
+-f +
+
+--flbas +
+
+

+ The namespace formatted logical block size setting. + Conflicts with --block-size argument. +

+
+
+-d +
+
+--dps +
+
+

+ The data protection settings. +

+
+
+-m +
+
+--nmic +
+
+

+ Namespace multipath and sharing capabilities. +

+
+
+-a +
+
+--anagrp-id +
+
+

+ ANA Gorup Identifier. If this value is 0h specifies + that the controller determines the value to use +

+
+
+-i <nvmsetid> +
+
+--nvmset_id=<nvmsetid> +
+
+

+ This field specifies the identifier of the NVM Set. +

+
+
+-b +
+
+--block-size +
+
+

+ Target block size the new namespace should be formatted as. Potential FLBAS + values will be values will be scanned and the lowest numbered will be + selected for the create-ns operation. Conflicts with --flbas argument. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples provided yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-create-ns.txt b/Documentation/nvme-create-ns.txt new file mode 100644 index 0000000..661b01b --- /dev/null +++ b/Documentation/nvme-create-ns.txt @@ -0,0 +1,74 @@ +nvme-create-ns(1) +================= + +NAME +---- +nvme-create-ns - Send NVMe Namespace management command to create namespace, returns results. + +SYNOPSIS +-------- +[verse] +'nvme create-ns' [--nsze= | -s ] + [--ncap= | -c ] + [--flbas= | -f ] + [--dps= | -d ] + [--nmic= | -m ] + [--anagrp-id= | -a ] + [--nvmset-id= | -i ] + [--block-size= | -b ] + [--timeout= | -t ] +DESCRIPTION +----------- +For the NVMe device given, sends a namespace management command to create +the namespace with the requested settings. On success, the namespace +identifier assigned by the controller is returned. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +OPTIONS +------- +-s:: +--nsze:: + The namespace size. + +-c:: +--ncap:: + The namespace capacity. + +-f:: +--flbas:: + The namespace formatted logical block size setting. + Conflicts with --block-size argument. + +-d:: +--dps:: + The data protection settings. + +-m:: +--nmic:: + Namespace multipath and sharing capabilities. + +-a:: +--anagrp-id:: + ANA Gorup Identifier. If this value is 0h specifies + that the controller determines the value to use + +-i :: +--nvmset-id=:: + This field specifies the identifier of the NVM Set. + +-b:: +--block-size:: + Target block size the new namespace should be formatted as. Potential FLBAS + values will be values will be scanned and the lowest numbered will be + selected for the create-ns operation. Conflicts with --flbas argument. + + +EXAMPLES +-------- +No examples provided yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-delete-ns.1 b/Documentation/nvme-delete-ns.1 new file mode 100644 index 0000000..c186a86 --- /dev/null +++ b/Documentation/nvme-delete-ns.1 @@ -0,0 +1,53 @@ +'\" t +.\" Title: nvme-id-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ID\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-delete-ns \- Send NVMe Namespace Management delete namespace command, return result\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme delete\-ns\fR [\-\-namespace\-id= | \-n ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an nvme namespace management command to delete the requested namespace and provides the result\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. The \*(Aq\-\-namespace\-id\*(Aq option is mandatory\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +The namespace identifier to delete\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-delete-ns.html b/Documentation/nvme-delete-ns.html new file mode 100644 index 0000000..481d85b --- /dev/null +++ b/Documentation/nvme-delete-ns.html @@ -0,0 +1,802 @@ + + + + + +nvme-id-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme delete-ns <device> [--namespace-id=<nsid> | -n <nsid>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an nvme namespace management command +to delete the requested namespace and provides the result.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +The '--namespace-id' option is mandatory.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ The namespace identifier to delete. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-delete-ns.txt b/Documentation/nvme-delete-ns.txt new file mode 100644 index 0000000..62301b4 --- /dev/null +++ b/Documentation/nvme-delete-ns.txt @@ -0,0 +1,34 @@ +nvme-id-ns(1) +============= + +NAME +---- +nvme-delete-ns - Send NVMe Namespace Management delete namespace command, return result. + +SYNOPSIS +-------- +[verse] +'nvme delete-ns' [--namespace-id= | -n ] + +DESCRIPTION +----------- +For the NVMe device given, sends an nvme namespace management command +to delete the requested namespace and provides the result. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +The `'--namespace-id'` option is mandatory. + +OPTIONS +------- +-n :: +--namespace-id=:: + The namespace identifier to delete. + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-dera-stat.1 b/Documentation/nvme-dera-stat.1 new file mode 100644 index 0000000..bf2ec27 --- /dev/null +++ b/Documentation/nvme-dera-stat.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-dera-stat +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DERA\-STAT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-dera-stat \- Send NVMe Dera Device status and Additional SMART log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme dera stat\fR +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Dera Device status and Additional SMART log page from the device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned status and smart log structure are printed in a readable format\&. +.SH "OPTIONS" +.sp +none +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the Dera Device status and Additional SMART log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dera stat /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-dera-stat.html b/Documentation/nvme-dera-stat.html new file mode 100644 index 0000000..49f8d39 --- /dev/null +++ b/Documentation/nvme-dera-stat.html @@ -0,0 +1,798 @@ + + + + + +nvme-dera-stat(1) + + + + + +
+
+

NAME

+
+

nvme-dera-stat - Send NVMe Dera Device status and Additional SMART log page request, returns result and log

+
+
+
+

SYNOPSIS

+
+
+
nvme dera stat <device>
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Dera Device status and Additional SMART log page from the device and +provides the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned status and smart log structure are printed in a readable format.

+
+
+
+

OPTIONS

+
+

none

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the Dera Device status and Additional SMART log page in a human readable format: +

    +
    +
    +
    # nvme dera stat /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-dera-stat.txt b/Documentation/nvme-dera-stat.txt new file mode 100644 index 0000000..512e584 --- /dev/null +++ b/Documentation/nvme-dera-stat.txt @@ -0,0 +1,38 @@ +nvme-dera-stat(1) +================= + +NAME +---- +nvme-dera-stat - Send NVMe Dera Device status and Additional SMART log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme dera stat' + +DESCRIPTION +----------- +Retrieves the NVMe Dera Device status and Additional SMART log page from the device and +provides the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned status and smart log structure are printed in a readable format. + +OPTIONS +------- +none + + +EXAMPLES +-------- +* Print the Dera Device status and Additional SMART log page in a human readable format: ++ +------------ +# nvme dera stat /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-detach-ns.1 b/Documentation/nvme-detach-ns.1 new file mode 100644 index 0000000..5765c85 --- /dev/null +++ b/Documentation/nvme-detach-ns.1 @@ -0,0 +1,57 @@ +'\" t +.\" Title: nvme-detach-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DETACH\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-detach-ns \- Send NVMe detach namespace, return result\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme detach\-ns\fR [\-\-namespace\-id= | \-n ] + [\-\-controllers= | \-c +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the nvme namespace detach command for the provided namespace identifier, attaching to the provided list of controller identifiers\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +The namespace identifier to detach\&. +.RE +.PP +\-c , \-controllers= +.RS 4 +The comma separated list of controller identifiers to detach the namespace from\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-detach-ns.html b/Documentation/nvme-detach-ns.html new file mode 100644 index 0000000..6cb9ab9 --- /dev/null +++ b/Documentation/nvme-detach-ns.html @@ -0,0 +1,813 @@ + + + + + +nvme-detach-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme detach-ns <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--controllers=<ctrl-list,> | -c <ctrl-list,>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the nvme namespace detach command for +the provided namespace identifier, attaching to the provided list of +controller identifiers.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ The namespace identifier to detach. +

+
+
+-c <ctrl-list,> +
+
+-controllers=<ctrl-list,> +
+
+

+ The comma separated list of controller identifiers to detach + the namespace from. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-detach-ns.txt b/Documentation/nvme-detach-ns.txt new file mode 100644 index 0000000..ed23c15 --- /dev/null +++ b/Documentation/nvme-detach-ns.txt @@ -0,0 +1,37 @@ +nvme-detach-ns(1) +================= + +NAME +---- +nvme-detach-ns - Send NVMe detach namespace, return result. + +SYNOPSIS +-------- +[verse] +'nvme detach-ns' [--namespace-id= | -n ] + [--controllers= | -c + +DESCRIPTION +----------- +For the NVMe device given, sends the nvme namespace detach command for +the provided namespace identifier, attaching to the provided list of +controller identifiers. + +OPTIONS +------- +-n :: +--namespace-id=:: + The namespace identifier to detach. + +-c :: +-controllers=:: + The comma separated list of controller identifiers to detach + the namespace from. + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-device-self-test.1 b/Documentation/nvme-device-self-test.1 new file mode 100644 index 0000000..699c178 --- /dev/null +++ b/Documentation/nvme-device-self-test.1 @@ -0,0 +1,101 @@ +'\" t +.\" Title: nvme-device-self-test +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DEVICE\-SELF\-" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-device-self-test \- Perform the necessary tests to observe the performance and the parameters +.SH "SYNOPSIS" +.sp +.nf +\fInvme device\-self\-test\fR [\-\-namespace\-id= | \-n ] + [\-\-self\-test\-code= | \-s ] +.fi +.SH "DESCRIPTION" +.sp +Initiates the required test based on the user input\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the corresponding test is initiated\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Indicate the namespace in which the device self\-test has to becarried out +.RE +.PP +\-s , \-\-self\-test\-code= +.RS 4 +This field specifies the action taken by the device self\-test command : 1h: Start a short device self\-test operation 2h: Start a extended device self\-test operation eh: Start a vendor specific device self\-test operation fh: abort the device self\-test operation +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Start a short device self\-test in the namespace\-id 1: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme device\-self\-test /dev/nvme0 \-n 1 \-s 1 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Abort the device self\-test operation in the namespace\-id 1: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme device\-self\-test /dev/nvme0 \-n 1 \-s 0xf +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-device-self-test.html b/Documentation/nvme-device-self-test.html new file mode 100644 index 0000000..3e91e02 --- /dev/null +++ b/Documentation/nvme-device-self-test.html @@ -0,0 +1,840 @@ + + + + + + +nvme-device-self-test(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme device-self-test <device> [--namespace-id=<NUM> | -n <NUM>]
+                        [--self-test-code=<NUM> | -s <NUM>]
+
+
+
+
+
+

DESCRIPTION

+
+

Initiates the required test based on the user input.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the corresponding test is initiated.

+
+
+
+

OPTIONS

+
+
+
+-n <NUM> +
+
+--namespace-id=<NUM> +
+
+

+ Indicate the namespace in which the device self-test has to becarried out +

+
+
+-s <NUM> +
+
+--self-test-code=<NUM> +
+
+

+ This field specifies the action taken by the device self-test command : + 1h: Start a short device self-test operation + 2h: Start a extended device self-test operation + eh: Start a vendor specific device self-test operation + fh: abort the device self-test operation +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Start a short device self-test in the namespace-id 1: +

    +
    +
    +
    # nvme device-self-test /dev/nvme0 -n 1 -s 1
    +
    +
  • +
  • +

    +Abort the device self-test operation in the namespace-id 1: +

    +
    +
    +
    # nvme device-self-test /dev/nvme0 -n 1 -s 0xf
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-device-self-test.txt b/Documentation/nvme-device-self-test.txt new file mode 100644 index 0000000..b7273a0 --- /dev/null +++ b/Documentation/nvme-device-self-test.txt @@ -0,0 +1,55 @@ +nvme-device-self-test(1) +======================== + +NAME +---- +nvme-device-self-test - Perform the necessary tests to observe the performance and the parameters + +SYNOPSIS +-------- +[verse] +'nvme device-self-test' [--namespace-id= | -n ] + [--self-test-code= | -s ] + +DESCRIPTION +----------- +Initiates the required test based on the user input. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the corresponding test is initiated. + +OPTIONS +------- +-n :: +--namespace-id=:: + Indicate the namespace in which the device self-test has to becarried out + +-s :: +--self-test-code=:: + This field specifies the action taken by the device self-test command : + 1h: Start a short device self-test operation + 2h: Start a extended device self-test operation + eh: Start a vendor specific device self-test operation + fh: abort the device self-test operation + + +EXAMPLES +-------- +* Start a short device self-test in the namespace-id 1: ++ +------------ +# nvme device-self-test /dev/nvme0 -n 1 -s 1 +------------ ++ + +* Abort the device self-test operation in the namespace-id 1: ++ +------------ +# nvme device-self-test /dev/nvme0 -n 1 -s 0xf +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-dir-receive.1 b/Documentation/nvme-dir-receive.1 new file mode 100644 index 0000000..44e8a2a --- /dev/null +++ b/Documentation/nvme-dir-receive.1 @@ -0,0 +1,235 @@ +'\" t +.\" Title: nvme-dir-receive +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DIR\-RECEIVE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-dir-receive \- Send a directive receive command, returns applicable results +.SH "SYNOPSIS" +.sp +.nf +\fInvme dir\-receive\fR [\-\-namespace\-id= | \-n ] + [\-\-data\-len= | \-l ] + [\-\-dir\-type= | \-D ] + [\-\-dir\-spec= | \-S ] + [\-\-dir\-oper= | \-O ] + [\-\-req\-resource= | \-r ] + [\-\-human\-readable | \-H] + [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +Submits an NVMe Directive Receive admin command and returns the applicable results\&. This may be the combination of directive type, and operation, as well as number of requested resource if specific operation needs it\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned directive\(cqs parameter structure (if applicable) is returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format if it is a known structure, displayed in hex, or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the feature for the given nsid\&. This is optional and most features do not use this value\&. +.RE +.PP +\-D , \-\-dir\-type= +.RS 4 +Directive type +.RE +.PP +\-S , \-\-dir\-spec= +.RS 4 +Directive specific +.RE +.PP +\-O , \-\-dir\-oper= +.RS 4 +Directive operation +.RE +.PP +\-r , \-\-req\-resource= +.RS 4 +Directive requested resource count +.RE +.sp ++ +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +.sp +Select +T}:T{ +.sp +Description +T} +T{ +.sp +0 +T}:T{ +.sp +Current +T} +T{ +.sp +1 +T}:T{ +.sp +Default +T} +T{ +.sp +2 +T}:T{ +.sp +Saved +T} +T{ +.sp +3 +T}:T{ +.sp +Supported capabilities +T} +T{ +.sp +4\(en7 +T}:T{ +.sp +Reserved +T} +.TE +.sp 1 +.PP +\-l , \-\-data\-len= +.RS 4 +The data length for the buffer returned for this feature\&. Most known features do not use this value\&. The exception is LBA Range Type +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw receive buffer to stdout if the command returns a structure\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +Print the decoded receive buffer to stdout if the command returns a structure\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Identify directive type supported : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-receive /dev/nvme0 \-\-dir\-type 0 \-\-dir\-oper 1 \-\-human\-readable +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get stream directive parameters : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-receive /dev/nvme0 \-\-dir\-type 1 \-\-dir\-oper 1 \-\-human\-readable +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Allocate 3 streams for namespace 1 +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-receive /dev/nvme0n1 \-\-dir\-type 1 \-\-dir\-oper 3 \-\-req\-resource 3 \-\-human\-readable +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get streams directive status : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-receive /dev/nvme0 \-\-dir\-type 1 \-\-dir\-oper 2 \-\-human\-readable +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-dir-receive.html b/Documentation/nvme-dir-receive.html new file mode 100644 index 0000000..3e0e01e --- /dev/null +++ b/Documentation/nvme-dir-receive.html @@ -0,0 +1,975 @@ + + + + + +nvme-dir-receive(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme dir-receive <device> [--namespace-id=<nsid> | -n <nsid>]
+                          [--data-len=<data-len> | -l <data-len>]
+                          [--dir-type=<dtype> | -D <dtype>]
+                          [--dir-spec=<dspec> | -S <dspec>]
+                          [--dir-oper=<doper> | -O <doper>]
+                          [--req-resource=<nsr> | -r <nsr>]
+                          [--human-readable | -H]
+                          [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

Submits an NVMe Directive Receive admin command and returns the applicable +results. This may be the combination of directive type, and operation, as +well as number of requested resource if specific operation needs it.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned directive’s parameter structure (if applicable) is +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format +if it is a known structure, displayed in hex, or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the feature for the given nsid. This is optional and + most features do not use this value. +

+
+
+-D <dtype> +
+
+--dir-type=<dtype> +
+
+

+ Directive type +

+
+
+-S <dspec> +
+
+--dir-spec=<dspec> +
+
+

+ Directive specific +

+
+
+-O <doper> +
+
+--dir-oper=<doper> +
+
+

+ Directive operation +

+
+
+-r <nsr> +
+
+--req-resource=<nsr> +
+
+

+ Directive requested resource count +

+
+
+

+

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + +

Select

Description

0

Current

1

Default

2

Saved

3

Supported capabilities

4–7

Reserved

+
+
+
+-l <data-len> +
+
+--data-len=<data-len> +
+
+

+ The data length for the buffer returned for this feature. Most + known features do not use this value. The exception is LBA + Range Type +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw receive buffer to stdout if the command returns + a structure. +

+
+
+-H +
+
+--human-readable +
+
+

+ Print the decoded receive buffer to stdout if the command returns + a structure. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Identify directive type supported : +

    +
    +
    +
    # nvme dir-receive /dev/nvme0 --dir-type 0 --dir-oper 1 --human-readable
    +
    +
  • +
  • +

    +Get stream directive parameters : +

    +
    +
    +
    # nvme dir-receive /dev/nvme0 --dir-type 1 --dir-oper 1 --human-readable
    +
    +
  • +
  • +

    +Allocate 3 streams for namespace 1 +

    +
    +
    +
    # nvme dir-receive /dev/nvme0n1 --dir-type 1 --dir-oper 3 --req-resource 3 --human-readable
    +
    +
  • +
  • +

    +Get streams directive status : +

    +
    +
    +
    # nvme dir-receive /dev/nvme0 --dir-type 1 --dir-oper 2 --human-readable
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-dir-receive.txt b/Documentation/nvme-dir-receive.txt new file mode 100644 index 0000000..b412c0b --- /dev/null +++ b/Documentation/nvme-dir-receive.txt @@ -0,0 +1,118 @@ +nvme-dir-receive(1) +=================== + +NAME +---- +nvme-dir-receive - Send a directive receive command, returns applicable results + +SYNOPSIS +-------- +[verse] +'nvme dir-receive' [--namespace-id= | -n ] + [--data-len= | -l ] + [--dir-type= | -D ] + [--dir-spec= | -S ] + [--dir-oper= | -O ] + [--req-resource= | -r ] + [--human-readable | -H] + [--raw-binary | -b] + +DESCRIPTION +----------- +Submits an NVMe Directive Receive admin command and returns the applicable +results. This may be the combination of directive type, and operation, as +well as number of requested resource if specific operation needs it. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned directive's parameter structure (if applicable) is +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format +if it is a known structure, displayed in hex, or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the feature for the given nsid. This is optional and + most features do not use this value. + +-D :: +--dir-type=:: + Directive type + +-S :: +--dir-spec=:: + Directive specific + +-O :: +--dir-oper=:: + Directive operation + +-r :: +--req-resource=:: + Directive requested resource count + ++ +[] +|================== +|Select|Description +|0|Current +|1|Default +|2|Saved +|3|Supported capabilities +|4–7|Reserved +|================== + +-l :: +--data-len=:: + The data length for the buffer returned for this feature. Most + known features do not use this value. The exception is LBA + Range Type + +-b:: +--raw-binary:: + Print the raw receive buffer to stdout if the command returns + a structure. + +-H:: +--human-readable:: + Print the decoded receive buffer to stdout if the command returns + a structure. + +EXAMPLES +-------- +* Identify directive type supported : ++ +------------ +# nvme dir-receive /dev/nvme0 --dir-type 0 --dir-oper 1 --human-readable +------------ ++ + +* Get stream directive parameters : ++ +------------ +# nvme dir-receive /dev/nvme0 --dir-type 1 --dir-oper 1 --human-readable +------------ ++ + +* Allocate 3 streams for namespace 1 ++ +------------ +# nvme dir-receive /dev/nvme0n1 --dir-type 1 --dir-oper 3 --req-resource 3 --human-readable +------------ ++ + +* Get streams directive status : ++ +------------ +# nvme dir-receive /dev/nvme0 --dir-type 1 --dir-oper 2 --human-readable +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-dir-send.1 b/Documentation/nvme-dir-send.1 new file mode 100644 index 0000000..77f9120 --- /dev/null +++ b/Documentation/nvme-dir-send.1 @@ -0,0 +1,241 @@ +'\" t +.\" Title: nvme-dir-send +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DIR\-SEND" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-dir-send \- Issue a directive send command, returns applicable results +.SH "SYNOPSIS" +.sp +.nf +\fInvme dir\-send\fR [\-\-namespace\-id= | \-n ] + [\-\-data\-len= | \-l ] + [\-\-dir\-type= | \-D ] + [\-\-dir\-spec= | \-S ] + [\-\-dir\-oper= | \-O ] + [\-\-endir= | \-e ] + [\-\-target\-dir= | \-T ] + [\-\-human\-readable | \-H] + [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +Submits an NVMe Directive Send admin command and returns the applicable results\&. This may be the combination of directive type, and operation, as well as target directive and its enable/disable status of the operation, if specific operation needs it\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned directive\(cqs parameter structure (if applicable) is returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format if it is a known structure, displayed in hex, or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the feature for the given nsid\&. This is optional and most features do not use this value\&. +.RE +.PP +\-D , \-\-dir\-type= +.RS 4 +Directive type +.RE +.PP +\-S , \-\-dir\-spec= +.RS 4 +Directive specific +.RE +.PP +\-O , \-\-dir\-oper= +.RS 4 +Directive operation +.RE +.PP +\-T , \-\-target\-dir= +.RS 4 +Target directive of the operation +.RE +.PP +\-e , \-\-endir= +.RS 4 +Target directive enable(1) or disable (0) operation +.RE +.sp ++ +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +.sp +Select +T}:T{ +.sp +Description +T} +T{ +.sp +0 +T}:T{ +.sp +Current +T} +T{ +.sp +1 +T}:T{ +.sp +Default +T} +T{ +.sp +2 +T}:T{ +.sp +Saved +T} +T{ +.sp +3 +T}:T{ +.sp +Supported capabilities +T} +T{ +.sp +4\(en7 +T}:T{ +.sp +Reserved +T} +.TE +.sp 1 +.PP +\-l , \-\-data\-len= +.RS 4 +The data length for the buffer returned for this feature\&. Most known features do not use this value\&. The exception is LBA Range Type +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw receive buffer to stdout if the command returns a structure\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +Print the decoded receive buffer to stdout if the command returns a structure\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Enable streams directive : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-send /dev/nvme0n1 \-\-dir\-type 0 \-\-dir\-oper 1 \-\-target\-dir 1 \-\-endir 1 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Disable streams directive : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-send /dev/nvme0n1 \-\-dir\-type 0 \-\-dir\-oper 1 \-\-target\-dir 1 \-\-endir 0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Release all allocated streams resource : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-send /dev/nvme0n1 \-\-dir\-type 1 \-\-dir\-oper 2 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Release stream ID 3 : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme dir\-send /dev/nvme0 \-\-dir\-type 1 \-\-dir\-oper 1 \-\-dir\-spec 3 +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-dir-send.html b/Documentation/nvme-dir-send.html new file mode 100644 index 0000000..8132e5e --- /dev/null +++ b/Documentation/nvme-dir-send.html @@ -0,0 +1,988 @@ + + + + + +nvme-dir-send(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme dir-send <device> [--namespace-id=<nsid> | -n <nsid>]
+                          [--data-len=<data-len> | -l <data-len>]
+                          [--dir-type=<dtype> | -D <dtype>]
+                          [--dir-spec=<dspec> | -S <dspec>]
+                          [--dir-oper=<doper> | -O <doper>]
+                          [--endir=<endir> | -e <endir>]
+                          [--target-dir=<tdir> | -T <tdir>]
+                          [--human-readable | -H]
+                          [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

Submits an NVMe Directive Send admin command and returns the applicable +results. This may be the combination of directive type, and operation, as +well as target directive and its enable/disable status of the operation, +if specific operation needs it.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned directive’s parameter structure (if applicable) is +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format +if it is a known structure, displayed in hex, or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the feature for the given nsid. This is optional and + most features do not use this value. +

+
+
+-D <dtype> +
+
+--dir-type=<dtype> +
+
+

+ Directive type +

+
+
+-S <dspec> +
+
+--dir-spec=<dspec> +
+
+

+ Directive specific +

+
+
+-O <doper> +
+
+--dir-oper=<doper> +
+
+

+ Directive operation +

+
+
+-T <tdir> +
+
+--target-dir=<nsr> +
+
+

+ Target directive of the operation +

+
+
+-e <endir> +
+
+--endir=<endir> +
+
+

+ Target directive enable(1) or disable (0) operation +

+
+
+

+

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + +

Select

Description

0

Current

1

Default

2

Saved

3

Supported capabilities

4–7

Reserved

+
+
+
+-l <data-len> +
+
+--data-len=<data-len> +
+
+

+ The data length for the buffer returned for this feature. Most + known features do not use this value. The exception is LBA + Range Type +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw receive buffer to stdout if the command returns + a structure. +

+
+
+-H +
+
+--human-readable +
+
+

+ Print the decoded receive buffer to stdout if the command returns + a structure. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Enable streams directive : +

    +
    +
    +
    # nvme dir-send /dev/nvme0n1 --dir-type 0 --dir-oper 1 --target-dir 1 --endir 1
    +
    +
  • +
  • +

    +Disable streams directive : +

    +
    +
    +
    # nvme dir-send /dev/nvme0n1 --dir-type 0 --dir-oper 1 --target-dir 1 --endir 0
    +
    +
  • +
  • +

    +Release all allocated streams resource : +

    +
    +
    +
    # nvme dir-send /dev/nvme0n1 --dir-type 1 --dir-oper 2
    +
    +
  • +
  • +

    +Release stream ID 3 : +

    +
    +
    +
    # nvme dir-send /dev/nvme0 --dir-type 1 --dir-oper 1 --dir-spec 3
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-dir-send.txt b/Documentation/nvme-dir-send.txt new file mode 100644 index 0000000..eb5dad0 --- /dev/null +++ b/Documentation/nvme-dir-send.txt @@ -0,0 +1,124 @@ +nvme-dir-send(1) +================ + +NAME +---- +nvme-dir-send - Issue a directive send command, returns applicable results + +SYNOPSIS +-------- +[verse] +'nvme dir-send' [--namespace-id= | -n ] + [--data-len= | -l ] + [--dir-type= | -D ] + [--dir-spec= | -S ] + [--dir-oper= | -O ] + [--endir= | -e ] + [--target-dir= | -T ] + [--human-readable | -H] + [--raw-binary | -b] + +DESCRIPTION +----------- +Submits an NVMe Directive Send admin command and returns the applicable +results. This may be the combination of directive type, and operation, as +well as target directive and its enable/disable status of the operation, +if specific operation needs it. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned directive's parameter structure (if applicable) is +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format +if it is a known structure, displayed in hex, or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the feature for the given nsid. This is optional and + most features do not use this value. + +-D :: +--dir-type=:: + Directive type + +-S :: +--dir-spec=:: + Directive specific + +-O :: +--dir-oper=:: + Directive operation + +-T :: +--target-dir=:: + Target directive of the operation + +-e :: +--endir=:: + Target directive enable(1) or disable (0) operation + ++ +[] +|================== +|Select|Description +|0|Current +|1|Default +|2|Saved +|3|Supported capabilities +|4–7|Reserved +|================== + +-l :: +--data-len=:: + The data length for the buffer returned for this feature. Most + known features do not use this value. The exception is LBA + Range Type + +-b:: +--raw-binary:: + Print the raw receive buffer to stdout if the command returns + a structure. + +-H:: +--human-readable:: + Print the decoded receive buffer to stdout if the command returns + a structure. + +EXAMPLES +-------- +* Enable streams directive : ++ +------------ +# nvme dir-send /dev/nvme0n1 --dir-type 0 --dir-oper 1 --target-dir 1 --endir 1 +------------ ++ + +* Disable streams directive : ++ +------------ +# nvme dir-send /dev/nvme0n1 --dir-type 0 --dir-oper 1 --target-dir 1 --endir 0 +------------ ++ + +* Release all allocated streams resource : ++ +------------ +# nvme dir-send /dev/nvme0n1 --dir-type 1 --dir-oper 2 +------------ ++ + +* Release stream ID 3 : ++ +------------ +# nvme dir-send /dev/nvme0 --dir-type 1 --dir-oper 1 --dir-spec 3 +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-disconnect-all.1 b/Documentation/nvme-disconnect-all.1 new file mode 100644 index 0000000..04aec10 --- /dev/null +++ b/Documentation/nvme-disconnect-all.1 @@ -0,0 +1,69 @@ +'\" t +.\" Title: nvme-disconnect-all +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DISCONNECT\-AL" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-disconnect-all \- Disconnect from all connected Fabrics controllers\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme disconnect\-all\fR +.fi +.SH "DESCRIPTION" +.sp +Disconnects and removes all existing NVMe over Fabrics controllers\&. +.sp +See the documentation for the nvme\-disconnect(1) command for further background\&. +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Disconnect all existing nvme controllers: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme disconnect\-all +.fi +.if n \{\ +.RE +.\} +.RE +.SH "SEE ALSO" +.sp +nvme\-disconnect(1) +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-disconnect-all.html b/Documentation/nvme-disconnect-all.html new file mode 100644 index 0000000..8e1d365 --- /dev/null +++ b/Documentation/nvme-disconnect-all.html @@ -0,0 +1,798 @@ + + + + + +nvme-disconnect-all(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme disconnect-all
+
+
+
+
+
+

DESCRIPTION

+
+

Disconnects and removes all existing NVMe over Fabrics controllers.

+

See the documentation for the nvme-disconnect(1) command for further +background.

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Disconnect all existing nvme controllers: +

    +
    +
    +
    # nvme disconnect-all
    +
    +
  • +
+
+
+
+

SEE ALSO

+
+

nvme-disconnect(1)

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-disconnect-all.txt b/Documentation/nvme-disconnect-all.txt new file mode 100644 index 0000000..6be7e41 --- /dev/null +++ b/Documentation/nvme-disconnect-all.txt @@ -0,0 +1,34 @@ +nvme-disconnect-all(1) +====================== + +NAME +---- +nvme-disconnect-all - Disconnect from all connected Fabrics controllers. + +SYNOPSIS +-------- +[verse] +'nvme disconnect-all' + +DESCRIPTION +----------- +Disconnects and removes all existing NVMe over Fabrics controllers. + +See the documentation for the nvme-disconnect(1) command for further +background. + +EXAMPLES +-------- +* Disconnect all existing nvme controllers: ++ +------------ +# nvme disconnect-all +------------ + +SEE ALSO +-------- +nvme-disconnect(1) + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-disconnect.1 b/Documentation/nvme-disconnect.1 new file mode 100644 index 0000000..23e1af7 --- /dev/null +++ b/Documentation/nvme-disconnect.1 @@ -0,0 +1,101 @@ +'\" t +.\" Title: nvme-disconnect +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DISCONNECT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-disconnect \- Disconnect one or more Fabrics controller(s)\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme disconnect\fR + [\-\-nqn= | \-n ] + [\-\-device= | \-d ] +.fi +.SH "DESCRIPTION" +.sp +Disconnects and removes one or more existing NVMe over Fabrics controllers\&. If the \-\-nqn option is specified all controllers connecting to the Subsystem identified by subnqn will be removed\&. If the \-\-device option is specified the controller specified by the \-\-device option will be removed\&. +.SH "OPTIONS" +.PP +\-n , \-\-nqn +.RS 4 +Indicates that all controllers for the NVMe subsystems specified should be removed\&. +.RE +.PP +\-d , \-\-device +.RS 4 +Indicates that the controller with the specified name should be removed\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Disconnect all controllers for a subsystem named nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme disconnect \-\-nqn=nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Disconnect the controller nvme4 +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme disconnect \-\-device=nvme4 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "SEE ALSO" +.sp +nvme\-connect(1) +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-disconnect.html b/Documentation/nvme-disconnect.html new file mode 100644 index 0000000..8d8c55d --- /dev/null +++ b/Documentation/nvme-disconnect.html @@ -0,0 +1,846 @@ + + + + + + +nvme-disconnect(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme disconnect
+                [--nqn=<subnqn>           | -n <subnqn>]
+                [--device=<device>        | -d <device>]
+
+
+
+
+
+

DESCRIPTION

+
+

Disconnects and removes one or more existing NVMe over Fabrics controllers. +If the --nqn option is specified all controllers connecting to the Subsystem +identified by subnqn will be removed. If the --device option is specified +the controller specified by the --device option will be removed.

+
+
+
+

OPTIONS

+
+
+
+-n <subnqn> +
+
+--nqn <subnqn> +
+
+

+ Indicates that all controllers for the NVMe subsystems specified + should be removed. +

+
+
+-d <device> +
+
+--device <device> +
+
+

+ Indicates that the controller with the specified name should be + removed. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Disconnect all controllers for a subsystem named +nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432: +

    +
    +
    +
    # nvme disconnect --nqn=nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432
    +
    +
  • +
  • +

    +Disconnect the controller nvme4 +

    +
    +
    +
    # nvme disconnect --device=nvme4
    +
    +
  • +
+
+
+
+

SEE ALSO

+
+

nvme-connect(1)

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-disconnect.txt b/Documentation/nvme-disconnect.txt new file mode 100644 index 0000000..badb86f --- /dev/null +++ b/Documentation/nvme-disconnect.txt @@ -0,0 +1,56 @@ +nvme-disconnect(1) +================== + +NAME +---- +nvme-disconnect - Disconnect one or more Fabrics controller(s). + +SYNOPSIS +-------- +[verse] +'nvme disconnect' + [--nqn= | -n ] + [--device= | -d ] + +DESCRIPTION +----------- +Disconnects and removes one or more existing NVMe over Fabrics controllers. +If the --nqn option is specified all controllers connecting to the Subsystem +identified by subnqn will be removed. If the --device option is specified +the controller specified by the --device option will be removed. + +OPTIONS +------- +-n :: +--nqn :: + Indicates that all controllers for the NVMe subsystems specified + should be removed. + +-d :: +--device :: + Indicates that the controller with the specified name should be + removed. + +EXAMPLES +-------- +* Disconnect all controllers for a subsystem named +nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432: ++ +------------ +# nvme disconnect --nqn=nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 +------------ + +* Disconnect the controller nvme4 ++ +------------ +# nvme disconnect --device=nvme4 +------------ + +SEE ALSO +-------- +nvme-connect(1) + + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-discover.1 b/Documentation/nvme-discover.1 new file mode 100644 index 0000000..f354560 --- /dev/null +++ b/Documentation/nvme-discover.1 @@ -0,0 +1,261 @@ +'\" t +.\" Title: nvme-discover +.\" Author: [see the "AUTHORS" section] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DISCOVER" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-discover \- Send Get Log Page request to Discovery Controller\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme discover\fR + [\-\-transport= | \-t ] + [\-\-traddr= | \-a ] + [\-\-trsvcid= | \-s ] + [\-\-host\-traddr= | \-w ] + [\-\-hostnqn= | \-q ] + [\-\-hostid= | \-I ] + [\-\-raw= | \-r ] + [\-\-keep\-alive\-tmo= | \-k ] + [\-\-reconnect\-delay=<#> | \-c <#>] + [\-\-ctrl\-loss\-tmo=<#> | \-l <#>] + [\-\-hdr_digest | \-g] + [\-\-data_digest | \-G] + [\-\-nr\-io\-queues=<#> | \-i <#>] + [\-\-nr\-write\-queues=<#> | \-W <#>] + [\-\-nr\-poll\-queues=<#> | \-P <#>] + [\-\-queue\-size=<#> | \-Q <#>] + [\-\-persistent | \-p] + [\-\-quiet | \-S] +.fi +.SH "DESCRIPTION" +.sp +Send one or more Get Log Page requests to a NVMe\-over\-Fabrics Discovery Controller\&. +.sp +If no parameters are given, then \fInvme discover\fR will attempt to find a /etc/nvme/discovery\&.conf file to use to supply a list of Discovery commands to run\&. If no /etc/nvme/discovery\&.conf file exists, the command will quit with an error\&. +.sp +Otherwise, a specific Discovery Controller should be specified using the \-\-transport, \-\-traddr, and if necessary the \-\-trsvcid flags\&. A Diѕcovery request will then be sent to the specified Discovery Controller\&. +.SH "BACKGROUND" +.sp +The NVMe\-over\-Fabrics specification defines the concept of a Discovery Controller that an NVMe Host can query on a fabric network to discover NVMe subsystems contained in NVMe Targets which it can connect to on the network\&. The Discovery Controller will return Discovery Log Pages that provide the NVMe Host with specific information (such as network address and unique subsystem NQN) the NVMe Host can use to issue an NVMe connect command to connect itself to a storage resource contained in that NVMe subsystem on the NVMe Target\&. +.sp +Note that the base NVMe specification defines the NQN (NVMe Qualified Name) format which an NVMe endpoint (device, subsystem, etc) must follow to guarantee a unique name under the NVMe standard\&. In particular, the Host NQN uniquely identifies the NVMe Host, and may be used by the the Discovery Controller to control what NVMe Target resources are allocated to the NVMe Host for a connection\&. +.sp +A Discovery Controller has it\(cqs own NQN defined in the NVMe\-over\-Fabrics specification, \fBnqn\&.2014\-08\&.org\&.nvmexpress\&.discovery\fR\&. All Discovery Controllers must use this NQN name\&. This NQN is used by default by nvme\-cli for the \fIdiscover\fR command\&. +.SH "OPTIONS" +.PP +\-t , \-\-transport= +.RS 4 +This field specifies the network fabric being used for a NVMe\-over\-Fabrics network\&. Current string values include: +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +rdma +T}:T{ +The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc) +T} +T{ +fc +T}:T{ +\fBWIP\fR +The network fabric is a Fibre Channel network\&. +T} +T{ +loop +T}:T{ +Connect to a NVMe over Fabrics target on the local host +T} +.TE +.sp 1 +.RE +.PP +\-a , \-\-traddr= +.RS 4 +This field specifies the network address of the Discovery Controller\&. For transports using IP addressing (e\&.g\&. rdma) this should be an IP\-based (ex\&. IPv4) address\&. +.RE +.PP +\-s , \-\-trsvcid= +.RS 4 +This field specifies the transport service id\&. For transports using IP addressing (e\&.g\&. rdma) this field is the port number\&. By default, the IP port number for the RDMA transport is 4420\&. +.RE +.PP +\-w , \-\-host\-traddr= +.RS 4 +This field specifies the network address used on the host to connect to the Discovery Controller\&. +.RE +.PP +\-q , \-\-hostnqn= +.RS 4 +Overrides the default host NQN that identifies the NVMe Host\&. If this option is not specified, the default is read from /etc/nvme/hostnqn first\&. If that does not exist, the autogenerated NQN value from the NVMe Host kernel module is used next\&. +.RE +.PP +\-I , \-\-hostid= +.RS 4 +UUID(Universally Unique Identifier) to be discovered which should be formatted\&. +.RE +.PP +\-r , \-\-raw= +.RS 4 +This field will take the output of the +\fInvme discover\fR +command and dump it to a raw binary file\&. By default +\fInvme discover\fR +will dump the output to stdout\&. +.RE +.PP +\-k <#>, \-\-keep\-alive\-tmo=<#> +.RS 4 +Overrides the default dealy (in seconds) for keep alive\&. This option will be ignored for the discovery, and it is only implemented for completeness\&. +.RE +.PP +\-c <#>, \-\-reconnect\-delay=<#> +.RS 4 +Overrides the default delay (in seconds) before reconnect is attempted after a connect loss\&. +.RE +.PP +\-l <#>, \-\-ctrl\-loss\-tmo=<#> +.RS 4 +Overrides the default controller loss timeout period (in seconds)\&. +.RE +.PP +\-g, \-\-hdr_digest +.RS 4 +Generates/verifies header digest (TCP)\&. +.RE +.PP +\-G, \-\-data_digest +.RS 4 +Generates/verifies data digest (TCP)\&. +.RE +.PP +\-i <#>, \-\-nr\-io\-queues=<#> +.RS 4 +Overrides the default number of I/O queues create by the driver\&. This option will be ignored for the discovery, and it is only implemented for completeness\&. +.RE +.PP +\-W <#>, \-\-nr\-write\-queues=<#> +.RS 4 +Adds additional queues that will be used for write I/O\&. +.RE +.PP +\-P <#>, \-\-nr\-poll\-queues=<#> +.RS 4 +Adds additional queues that will be used for polling latency sensitive I/O\&. +.RE +.PP +\-Q <#>, \-\-queue\-size=<#> +.RS 4 +Overrides the default number of elements in the I/O queues created by the driver which can be found at drivers/nvme/host/fabrics\&.h\&. This option will be ignored for the discovery, and it is only implemented for completeness\&. +.RE +.PP +\-p, \-\-persistent +.RS 4 +Persistent discovery connection\&. +.RE +.PP +\-S, \-\-quiet +.RS 4 +Suppress already connected errors\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Query the Discover Controller with IP4 address 192\&.168\&.1\&.3 for all resources allocated for NVMe Host name host1\-rogue\-nqn on the RDMA network\&. Port 4420 is used by default: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme discover \-\-transport=rdma \-\-traddr=192\&.168\&.1\&.3 \e +\-\-hostnqn=host1\-rogue\-nqn +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Issue a +\fInvme discover\fR +command using a /etc/nvme/discovery\&.conf file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# Machine default \*(Aqnvme discover\*(Aq commands\&. Query the +# Discovery Controller\*(Aqs two ports (some resources may only +# be accessible on a single port)\&. Note an official +# nqn (Host) name defined in the NVMe specification is being used +# in this example\&. +\-t rdma \-a 192\&.168\&.69\&.33 \-s 4420 \-q nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432 +\-t rdma \-a 192\&.168\&.1\&.4 \-s 4420 \-q nqn\&.2014\-08\&.com\&.example:nvme:nvm\-subsystem\-sn\-d78432 + +At the prompt type "nvme discover"\&. +.fi +.if n \{\ +.RE +.\} +.RE +.SH "SEE ALSO" +.sp +nvme\-connect(1) nvme\-connect\-all(1) +.SH "AUTHORS" +.sp +This was written by \m[blue]\fBJay Freyensee\fR\m[]\&\s-2\u[1]\d\s+2 +.SH "NVME" +.sp +Part of the nvme\-user suite +.SH "NOTES" +.IP " 1." 4 +Jay Freyensee +.RS 4 +\%mailto:james.p.freyensee@intel.com +.RE diff --git a/Documentation/nvme-discover.html b/Documentation/nvme-discover.html new file mode 100644 index 0000000..dc6c7a1 --- /dev/null +++ b/Documentation/nvme-discover.html @@ -0,0 +1,1129 @@ + + + + + + +nvme-discover(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme discover
+                [--transport=<trtype>     | -t <trtype>]
+                [--traddr=<traddr>        | -a <traddr>]
+                [--trsvcid=<trsvcid>      | -s <trsvcid>]
+                [--host-traddr=<traddr>   | -w <traddr>]
+                [--hostnqn=<hostnqn>      | -q <hostnqn>]
+                [--hostid=<hostid>        | -I <hostid>]
+                [--raw=<filename>         | -r <filename>]
+                [--keep-alive-tmo=<sec>   | -k <sec>]
+                [--reconnect-delay=<#>    | -c <#>]
+                [--ctrl-loss-tmo=<#>      | -l <#>]
+                [--hdr_digest             | -g]
+                [--data_digest            | -G]
+                [--nr-io-queues=<#>       | -i <#>]
+                [--nr-write-queues=<#>    | -W <#>]
+                [--nr-poll-queues=<#>     | -P <#>]
+                [--queue-size=<#>         | -Q <#>]
+                [--persistent             | -p]
+                [--quiet                  | -S]
+
+
+
+
+
+

DESCRIPTION

+
+

Send one or more Get Log Page requests to a NVMe-over-Fabrics Discovery +Controller.

+

If no parameters are given, then nvme discover will attempt to +find a /etc/nvme/discovery.conf file to use to supply a list of +Discovery commands to run. If no /etc/nvme/discovery.conf file +exists, the command will quit with an error.

+

Otherwise, a specific Discovery Controller should be specified using the +--transport, --traddr, and if necessary the --trsvcid flags. A Diѕcovery +request will then be sent to the specified Discovery Controller.

+
+
+
+

BACKGROUND

+
+

The NVMe-over-Fabrics specification defines the concept of a +Discovery Controller that an NVMe Host can query on a fabric +network to discover NVMe subsystems contained in NVMe Targets +which it can connect to on the network. The Discovery Controller +will return Discovery Log Pages that provide the NVMe Host +with specific information (such as network address and unique +subsystem NQN) the NVMe Host can use to issue an +NVMe connect command to connect itself to a storage resource +contained in that NVMe subsystem on the NVMe Target.

+

Note that the base NVMe specification defines the NQN (NVMe Qualified +Name) format which an NVMe endpoint (device, subsystem, etc) must +follow to guarantee a unique name under the NVMe standard. +In particular, the Host NQN uniquely identifies the NVMe Host, and +may be used by the the Discovery Controller to control what NVMe Target +resources are allocated to the NVMe Host for a connection.

+

A Discovery Controller has it’s own NQN defined in the NVMe-over-Fabrics +specification, nqn.2014-08.org.nvmexpress.discovery. All Discovery +Controllers must use this NQN name. This NQN is used by default by +nvme-cli for the discover command.

+
+
+
+

OPTIONS

+
+
+
+-t <trtype> +
+
+--transport=<trtype> +
+
+

+ This field specifies the network fabric being used for + a NVMe-over-Fabrics network. Current string values include: +

+
+ +++ + + + + + + + + + + + + + + + + + +

Value

Definition

rdma

The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc)

fc

WIP The network fabric is a Fibre Channel network.

loop

Connect to a NVMe over Fabrics target on the local host

+
+
+
+-a <traddr> +
+
+--traddr=<traddr> +
+
+

+ This field specifies the network address of the Discovery Controller. + For transports using IP addressing (e.g. rdma) this should be an + IP-based (ex. IPv4) address. +

+
+
+-s <trsvcid> +
+
+--trsvcid=<trsvcid> +
+
+

+ This field specifies the transport service id. For transports using IP + addressing (e.g. rdma) this field is the port number. By default, the IP + port number for the RDMA transport is 4420. +

+
+
+-w <traddr> +
+
+--host-traddr=<traddr> +
+
+

+ This field specifies the network address used on the host to connect + to the Discovery Controller. +

+
+
+-q <hostnqn> +
+
+--hostnqn=<hostnqn> +
+
+

+ Overrides the default host NQN that identifies the NVMe Host. + If this option is not specified, the default is read from + /etc/nvme/hostnqn first. If that does not exist, the autogenerated + NQN value from the NVMe Host kernel module is used next. +

+
+
+-I <hostid> +
+
+--hostid=<hostid> +
+
+

+ UUID(Universally Unique Identifier) to be discovered which should be + formatted. +

+
+
+-r <filename> +
+
+--raw=<filename> +
+
+

+ This field will take the output of the nvme discover command + and dump it to a raw binary file. By default nvme discover will + dump the output to stdout. +

+
+
+-k <#> +
+
+--keep-alive-tmo=<#> +
+
+

+ Overrides the default dealy (in seconds) for keep alive. + This option will be ignored for the discovery, and it is only + implemented for completeness. +

+
+
+-c <#> +
+
+--reconnect-delay=<#> +
+
+

+ Overrides the default delay (in seconds) before reconnect is attempted + after a connect loss. +

+
+
+-l <#> +
+
+--ctrl-loss-tmo=<#> +
+
+

+ Overrides the default controller loss timeout period (in seconds). +

+
+
+-g +
+
+--hdr_digest +
+
+

+ Generates/verifies header digest (TCP). +

+
+
+-G +
+
+--data_digest +
+
+

+ Generates/verifies data digest (TCP). +

+
+
+-i <#> +
+
+--nr-io-queues=<#> +
+
+

+ Overrides the default number of I/O queues create by the driver. + This option will be ignored for the discovery, and it is only + implemented for completeness. +

+
+
+-W <#> +
+
+--nr-write-queues=<#> +
+
+

+ Adds additional queues that will be used for write I/O. +

+
+
+-P <#> +
+
+--nr-poll-queues=<#> +
+
+

+ Adds additional queues that will be used for polling latency sensitive I/O. +

+
+
+-Q <#> +
+
+--queue-size=<#> +
+
+

+ Overrides the default number of elements in the I/O queues created + by the driver which can be found at drivers/nvme/host/fabrics.h. + This option will be ignored for the discovery, and it is only + implemented for completeness. +

+
+
+-p +
+
+--persistent +
+
+

+ Persistent discovery connection. +

+
+
+-S +
+
+--quiet +
+
+

+ Suppress already connected errors. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Query the Discover Controller with IP4 address 192.168.1.3 for all +resources allocated for NVMe Host name host1-rogue-nqn on the RDMA network. +Port 4420 is used by default: +

    +
    +
    +
    # nvme discover --transport=rdma --traddr=192.168.1.3 \
    +--hostnqn=host1-rogue-nqn
    +
    +
  • +
  • +

    +Issue a nvme discover command using a /etc/nvme/discovery.conf file: +

    +
    +
    +
    # Machine default 'nvme discover' commands.  Query the
    +# Discovery Controller's two ports (some resources may only
    +# be accessible on a single port).  Note an official
    +# nqn (Host) name defined in the NVMe specification is being used
    +# in this example.
    +-t rdma -a 192.168.69.33 -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432
    +-t rdma -a 192.168.1.4   -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432
    +
    +At the prompt type "nvme discover".
    +
    +
  • +
+
+
+
+

SEE ALSO

+
+

nvme-connect(1) +nvme-connect-all(1)

+
+
+
+

AUTHORS

+
+

This was written by Jay Freyensee

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-discover.txt b/Documentation/nvme-discover.txt new file mode 100644 index 0000000..f006639 --- /dev/null +++ b/Documentation/nvme-discover.txt @@ -0,0 +1,208 @@ +nvme-discover(1) +================ + +NAME +---- +nvme-discover - Send Get Log Page request to Discovery Controller. + +SYNOPSIS +-------- +[verse] +'nvme discover' + [--transport= | -t ] + [--traddr= | -a ] + [--trsvcid= | -s ] + [--host-traddr= | -w ] + [--hostnqn= | -q ] + [--hostid= | -I ] + [--raw= | -r ] + [--keep-alive-tmo= | -k ] + [--reconnect-delay=<#> | -c <#>] + [--ctrl-loss-tmo=<#> | -l <#>] + [--hdr_digest | -g] + [--data_digest | -G] + [--nr-io-queues=<#> | -i <#>] + [--nr-write-queues=<#> | -W <#>] + [--nr-poll-queues=<#> | -P <#>] + [--queue-size=<#> | -Q <#>] + [--persistent | -p] + [--quiet | -S] + +DESCRIPTION +----------- +Send one or more Get Log Page requests to a NVMe-over-Fabrics Discovery +Controller. + +If no parameters are given, then 'nvme discover' will attempt to +find a /etc/nvme/discovery.conf file to use to supply a list of +Discovery commands to run. If no /etc/nvme/discovery.conf file +exists, the command will quit with an error. + +Otherwise, a specific Discovery Controller should be specified using the +--transport, --traddr, and if necessary the --trsvcid flags. A Diѕcovery +request will then be sent to the specified Discovery Controller. + +BACKGROUND +---------- +The NVMe-over-Fabrics specification defines the concept of a +Discovery Controller that an NVMe Host can query on a fabric +network to discover NVMe subsystems contained in NVMe Targets +which it can connect to on the network. The Discovery Controller +will return Discovery Log Pages that provide the NVMe Host +with specific information (such as network address and unique +subsystem NQN) the NVMe Host can use to issue an +NVMe connect command to connect itself to a storage resource +contained in that NVMe subsystem on the NVMe Target. + +Note that the base NVMe specification defines the NQN (NVMe Qualified +Name) format which an NVMe endpoint (device, subsystem, etc) must +follow to guarantee a unique name under the NVMe standard. +In particular, the Host NQN uniquely identifies the NVMe Host, and +may be used by the the Discovery Controller to control what NVMe Target +resources are allocated to the NVMe Host for a connection. + +A Discovery Controller has it's own NQN defined in the NVMe-over-Fabrics +specification, *nqn.2014-08.org.nvmexpress.discovery*. All Discovery +Controllers must use this NQN name. This NQN is used by default by +nvme-cli for the 'discover' command. + +OPTIONS +------- +-t :: +--transport=:: + This field specifies the network fabric being used for + a NVMe-over-Fabrics network. Current string values include: ++ +[] +|================= +|Value|Definition +|rdma|The network fabric is an rdma network (RoCE, iWARP, Infiniband, basic rdma, etc) +|fc |*WIP* The network fabric is a Fibre Channel network. +|loop|Connect to a NVMe over Fabrics target on the local host +|================= + +-a :: +--traddr=:: + This field specifies the network address of the Discovery Controller. + For transports using IP addressing (e.g. rdma) this should be an + IP-based (ex. IPv4) address. + +-s :: +--trsvcid=:: + This field specifies the transport service id. For transports using IP + addressing (e.g. rdma) this field is the port number. By default, the IP + port number for the RDMA transport is 4420. + +-w :: +--host-traddr=:: + This field specifies the network address used on the host to connect + to the Discovery Controller. + +-q :: +--hostnqn=:: + Overrides the default host NQN that identifies the NVMe Host. + If this option is not specified, the default is read from + /etc/nvme/hostnqn first. If that does not exist, the autogenerated + NQN value from the NVMe Host kernel module is used next. + +-I :: +--hostid=:: + UUID(Universally Unique Identifier) to be discovered which should be + formatted. + +-r :: +--raw=:: + This field will take the output of the 'nvme discover' command + and dump it to a raw binary file. By default 'nvme discover' will + dump the output to stdout. + +-k <#>:: +--keep-alive-tmo=<#>:: + Overrides the default dealy (in seconds) for keep alive. + This option will be ignored for the discovery, and it is only + implemented for completeness. + +-c <#>:: +--reconnect-delay=<#>:: + Overrides the default delay (in seconds) before reconnect is attempted + after a connect loss. + +-l <#>:: +--ctrl-loss-tmo=<#>:: + Overrides the default controller loss timeout period (in seconds). + +-g:: +--hdr_digest:: + Generates/verifies header digest (TCP). + +-G:: +--data_digest:: + Generates/verifies data digest (TCP). + +-i <#>:: +--nr-io-queues=<#>:: + Overrides the default number of I/O queues create by the driver. + This option will be ignored for the discovery, and it is only + implemented for completeness. + +-W <#>:: +--nr-write-queues=<#>:: + Adds additional queues that will be used for write I/O. + +-P <#>:: +--nr-poll-queues=<#>:: + Adds additional queues that will be used for polling latency sensitive I/O. + +-Q <#>:: +--queue-size=<#>:: + Overrides the default number of elements in the I/O queues created + by the driver which can be found at drivers/nvme/host/fabrics.h. + This option will be ignored for the discovery, and it is only + implemented for completeness. + +-p:: +--persistent:: + Persistent discovery connection. + +-S:: +--quiet:: + Suppress already connected errors. + +EXAMPLES +-------- +* Query the Discover Controller with IP4 address 192.168.1.3 for all +resources allocated for NVMe Host name host1-rogue-nqn on the RDMA network. +Port 4420 is used by default: ++ +------------ +# nvme discover --transport=rdma --traddr=192.168.1.3 \ +--hostnqn=host1-rogue-nqn +------------ ++ +* Issue a 'nvme discover' command using a /etc/nvme/discovery.conf file: ++ +----------- +# Machine default 'nvme discover' commands. Query the +# Discovery Controller's two ports (some resources may only +# be accessible on a single port). Note an official +# nqn (Host) name defined in the NVMe specification is being used +# in this example. +-t rdma -a 192.168.69.33 -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 +-t rdma -a 192.168.1.4 -s 4420 -q nqn.2014-08.com.example:nvme:nvm-subsystem-sn-d78432 + +At the prompt type "nvme discover". + +------------ + +SEE ALSO +-------- +nvme-connect(1) +nvme-connect-all(1) + +AUTHORS +------- +This was written by mailto:james.p.freyensee@intel.com[Jay Freyensee] + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-dsm.1 b/Documentation/nvme-dsm.1 new file mode 100644 index 0000000..899a6a6 --- /dev/null +++ b/Documentation/nvme-dsm.1 @@ -0,0 +1,97 @@ +'\" t +.\" Title: nvme-dsm +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-DSM" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-dsm \- Send NVMe Data Set Management, return results +.SH "SYNOPSIS" +.sp +.nf +\fInvme dsm\fR [ \-\-namespace\-id= | \-n ] + [ \-\-ctx\-attrs= | \-a ] + [ \-\-blocks= | \-b ] + [ \-\-slbs= | \-s ] + [ \-\-ad | \-d ] [ \-\-idw | \-w ] [ \-\-idr | \-r ] + [ \-\-cdw11= | \-c ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an Data Set Management command and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. If the character device is given, the \*(Aq\-\-namespace\-id\*(Aq option is mandatory, otherwise it will use the ns\-id of the namespace for the block device you opened\&. For block devices, the ns\-id used can be overridden with the same option\&. +.sp +You must specify at least one of the values for range list\&. If the range lists provided do not list the same number of elements, the default values for the remaining in the range will be set to 0\&. +.sp +The command dword 11 may be provided at the command line\&. For convenience, the current defined attributes (discard, integral read/write) for a data\-set management have flags\&. If cdw11 is specified, this will override any settings from the flags may have provided\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Sends the command with the requested nsid\&. This is required for the character devices, or overrides the block nsid if given\&. +.RE +.PP +\-a , \-\-ctx\-attrs= +.RS 4 +Comma separated list of the context attributes in each range +.RE +.PP +\-b , \-\-blocks= +.RS 4 +Comma separated list of the number of blocks in each range +.RE +.PP +\-s , \-\-slbs= +.RS 4 +Comma separated list of the starting block in each range +.RE +.PP +\-d , \-\-ad= +.RS 4 +Attribute Deallocate\&. +.RE +.PP +\-w , \-\-idw= +.RS 4 +Attribute Integral Dataset for Write\&. +.RE +.PP +\-r , \-\-idr= +.RS 4 +Attribute Integral Dataset for Read\&. +.RE +.PP +\-c , \-\-cdw11= +.RS 4 +All the command command dword 11 attributes\&. Use exclusive from specifying individual attributes +.RE +.SH "EXAMPLES" +.sp +No examples yet +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-dsm.html b/Documentation/nvme-dsm.html new file mode 100644 index 0000000..37948df --- /dev/null +++ b/Documentation/nvme-dsm.html @@ -0,0 +1,896 @@ + + + + + +nvme-dsm(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme dsm <device>  [ --namespace-id=<nsid> | -n <nsid> ]
+                        [ --ctx-attrs=<attribute-list,> | -a <attribute-list,> ]
+                        [ --blocks=<nlb-list,> | -b <nlb-list,> ]
+                        [ --slbs=<slba-list,> | -s <slba-list,> ]
+                        [ --ad | -d ] [ --idw | -w ] [ --idr | -r ]
+                        [ --cdw11=<cdw11> | -c <cdw11> ]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an Data Set Management command and +provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, the '--namespace-id' option is +mandatory, otherwise it will use the ns-id of the namespace for the block +device you opened. For block devices, the ns-id used can be overridden +with the same option.

+

You must specify at least one of the values for range list. If the range +lists provided do not list the same number of elements, the default +values for the remaining in the range will be set to 0.

+

The command dword 11 may be provided at the command line. For convenience, +the current defined attributes (discard, integral read/write) for a +data-set management have flags. If cdw11 is specified, this will override +any settings from the flags may have provided.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Sends the command with the requested nsid. This is required for the + character devices, or overrides the block nsid if given. +

+
+
+-a <attribute-list,> +
+
+--ctx-attrs=<attribute-list> +
+
+

+ Comma separated list of the context attributes in each range +

+
+
+-b <nlb-list,> +
+
+--blocks=<nlb-list,> +
+
+

+ Comma separated list of the number of blocks in each range +

+
+
+-s <slba-list,> +
+
+--slbs=<slba-list,> +
+
+

+ Comma separated list of the starting block in each range +

+
+
+-d <deallocate> +
+
+--ad=<deallocate> +
+
+

+ Attribute Deallocate. +

+
+
+-w <write> +
+
+--idw=<write> +
+
+

+ Attribute Integral Dataset for Write. +

+
+
+-r <read> +
+
+--idr=<read> +
+
+

+ Attribute Integral Dataset for Read. +

+
+
+-c <cdw11> +
+
+--cdw11=<cdw11> +
+
+

+ All the command command dword 11 attributes. Use exclusive from + specifying individual attributes +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-dsm.txt b/Documentation/nvme-dsm.txt new file mode 100644 index 0000000..e81de14 --- /dev/null +++ b/Documentation/nvme-dsm.txt @@ -0,0 +1,82 @@ +nvme-dsm(1) +=========== + +NAME +---- +nvme-dsm - Send NVMe Data Set Management, return results + +SYNOPSIS +-------- +[verse] +'nvme dsm' [ --namespace-id= | -n ] + [ --ctx-attrs= | -a ] + [ --blocks= | -b ] + [ --slbs= | -s ] + [ --ad | -d ] [ --idw | -w ] [ --idr | -r ] + [ --cdw11= | -c ] + + +DESCRIPTION +----------- +For the NVMe device given, sends an Data Set Management command and +provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, the `'--namespace-id'` option is +mandatory, otherwise it will use the ns-id of the namespace for the block +device you opened. For block devices, the ns-id used can be overridden +with the same option. + +You must specify at least one of the values for range list. If the range +lists provided do not list the same number of elements, the default +values for the remaining in the range will be set to 0. + +The command dword 11 may be provided at the command line. For convenience, +the current defined attributes (discard, integral read/write) for a +data-set management have flags. If cdw11 is specified, this will override +any settings from the flags may have provided. + +OPTIONS +------- +-n :: +--namespace-id=:: + Sends the command with the requested nsid. This is required for the + character devices, or overrides the block nsid if given. + +-a :: +--ctx-attrs=:: + Comma separated list of the context attributes in each range + +-b :: +--blocks=:: + Comma separated list of the number of blocks in each range + +-s :: +--slbs=:: + Comma separated list of the starting block in each range + +-d :: +--ad=:: + Attribute Deallocate. + +-w :: +--idw=:: + Attribute Integral Dataset for Write. + +-r :: +--idr=:: + Attribute Integral Dataset for Read. + +-c :: +--cdw11=:: + All the command command dword 11 attributes. Use exclusive from + specifying individual attributes + +EXAMPLES +-------- +No examples yet + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-effects-log.1 b/Documentation/nvme-effects-log.1 new file mode 100644 index 0000000..72b22fb --- /dev/null +++ b/Documentation/nvme-effects-log.1 @@ -0,0 +1,108 @@ +'\" t +.\" Title: nvme-effects-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-EFFECTS\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-effects-log \- Send NVMe Command Effects log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme effects\-log\fR [\-\-output\-format= | \-o ] + [\-\-human\-readable | \-H] + [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Command Effects log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and should be the NVMe character device (ex: /dev/nvme0)\&. +.sp +On success, the returned command effects log structure will be printed for each command that is supported\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +This option will set the reporting format to normal, json, or binary\&. Only one output format can be used at a time\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +This option will parse and format many of the bit fields into a human\-readable format\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +This option will print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the human\-readable option\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the effects log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme effects\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Have the program return the raw structure in binary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme effects\-log /dev/nvme0 \-\-raw\-binary > effects_log\&.raw +# nvme effects\-log /dev/nvme0 \-b > effects_log\&.raw +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-effects-log.html b/Documentation/nvme-effects-log.html new file mode 100644 index 0000000..5928b8b --- /dev/null +++ b/Documentation/nvme-effects-log.html @@ -0,0 +1,854 @@ + + + + + + +nvme-effects-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme effects-log <device> [--output-format=<fmt> | -o <fmt>]
+                            [--human-readable | -H]
+                            [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Command Effects log page from an NVMe device and provides +the returned structure.

+

The <device> parameter is mandatory and should be the NVMe character +device (ex: /dev/nvme0).

+

On success, the returned command effects log structure will be printed +for each command that is supported.

+
+
+
+

OPTIONS

+
+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ This option will set the reporting format to normal, json, or binary. + Only one output format can be used at a time. +

+
+
+-H +
+
+--human-readable +
+
+

+ This option will parse and format many of the bit fields into a + human-readable format. +

+
+
+-b +
+
+--raw-binary +
+
+

+ This option will print the raw buffer to stdout. Structure is not + parsed by program. This overrides the human-readable option. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the effects log page in a human readable format: +

    +
    +
    +
    # nvme effects-log /dev/nvme0
    +
    +
  • +
  • +

    +Have the program return the raw structure in binary: +

    +
    +
    +
    # nvme effects-log /dev/nvme0 --raw-binary > effects_log.raw
    +# nvme effects-log /dev/nvme0 -b > effects_log.raw
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-effects-log.txt b/Documentation/nvme-effects-log.txt new file mode 100644 index 0000000..f7d0092 --- /dev/null +++ b/Documentation/nvme-effects-log.txt @@ -0,0 +1,62 @@ +nvme-effects-log(1) +=================== + +NAME +---- +nvme-effects-log - Send NVMe Command Effects log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme effects-log' [--output-format= | -o ] + [--human-readable | -H] + [--raw-binary | -b] + +DESCRIPTION +----------- +Retrieves the NVMe Command Effects log page from an NVMe device and provides +the returned structure. + +The parameter is mandatory and should be the NVMe character +device (ex: /dev/nvme0). + +On success, the returned command effects log structure will be printed +for each command that is supported. + +OPTIONS +------- + +-o :: +--output-format=:: + This option will set the reporting format to normal, json, or binary. + Only one output format can be used at a time. + +-H:: +--human-readable:: + This option will parse and format many of the bit fields into a + human-readable format. + +-b:: +--raw-binary:: + This option will print the raw buffer to stdout. Structure is not + parsed by program. This overrides the human-readable option. + +EXAMPLES +-------- +* Print the effects log page in a human readable format: ++ +------------ +# nvme effects-log /dev/nvme0 +------------ ++ + +* Have the program return the raw structure in binary: ++ +------------ +# nvme effects-log /dev/nvme0 --raw-binary > effects_log.raw +# nvme effects-log /dev/nvme0 -b > effects_log.raw +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-endurance-log.1 b/Documentation/nvme-endurance-log.1 new file mode 100644 index 0000000..067a7a3 --- /dev/null +++ b/Documentation/nvme-endurance-log.1 @@ -0,0 +1,106 @@ +'\" t +.\" Title: nvme-endurance-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ENDURANCE\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-endurance-log \- Send NVMe Endurance log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme endurance\-log\fR [\-\-group\-id= | \-g ] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Endurance log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned endurance log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format, the raw buffer may be printed to stdout for another program to parse, or reported in json format\&. +.SH "OPTIONS" +.PP +\-g , \-\-group\-id= +.RS 4 +The endurance group identifier\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the Endurance log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme endurance\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the raw Endurance log to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme endurance\-log /dev/nvme0 \-\-output=binary > endurance_log\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-endurance-log.html b/Documentation/nvme-endurance-log.html new file mode 100644 index 0000000..42fe267 --- /dev/null +++ b/Documentation/nvme-endurance-log.html @@ -0,0 +1,841 @@ + + + + + + +nvme-endurance-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme endurance-log <device> [--group-id=<group> | -g <group>]
+                        [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Endurance log page from an NVMe device and provides the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned endurance log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format, the raw buffer may be +printed to stdout for another program to parse, or reported in json format.

+
+
+
+

OPTIONS

+
+
+
+-g <group> +
+
+--group-id=<group> +
+
+

+ The endurance group identifier. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the Endurance log page in a human readable format: +

    +
    +
    +
    # nvme endurance-log /dev/nvme0
    +
    +
  • +
  • +

    +Print the raw Endurance log to a file: +

    +
    +
    +
    # nvme endurance-log /dev/nvme0 --output=binary > endurance_log.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-endurance-log.txt b/Documentation/nvme-endurance-log.txt new file mode 100644 index 0000000..5e18b57 --- /dev/null +++ b/Documentation/nvme-endurance-log.txt @@ -0,0 +1,56 @@ +nvme-endurance-log(1) +===================== + +NAME +---- +nvme-endurance-log - Send NVMe Endurance log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme endurance-log' [--group-id= | -g ] + [--output-format= | -o ] + +DESCRIPTION +----------- +Retrieves the NVMe Endurance log page from an NVMe device and provides the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned endurance log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format, the raw buffer may be +printed to stdout for another program to parse, or reported in json format. + +OPTIONS +------- +-g :: +--group-id=:: + The endurance group identifier. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Print the Endurance log page in a human readable format: ++ +------------ +# nvme endurance-log /dev/nvme0 +------------ ++ + +* Print the raw Endurance log to a file: ++ +------------ +# nvme endurance-log /dev/nvme0 --output=binary > endurance_log.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-error-log.1 b/Documentation/nvme-error-log.1 new file mode 100644 index 0000000..e116ad4 --- /dev/null +++ b/Documentation/nvme-error-log.1 @@ -0,0 +1,112 @@ +'\" t +.\" Title: nvme-error-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ERROR\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-error-log \- Send NVME Error log page request, return result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme error\-log\fR [\-\-log\-entries= | \-e ] + [\-\-raw\-binary | \-b] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +Retrieves NVMe Error log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned error log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-e , \-\-log\-entries= +.RS 4 +Specifies how many log entries the program should request from the device\&. This must be at least one, and shouldn\(cqt exceed the device\(cqs capabilities\&. Defaults to 64 log entries\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw error log buffer to stdout\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the error log and print it in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme error\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the raw output to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme error\-log /dev/nvme0 \-\-raw\-binary > error_log\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-error-log.html b/Documentation/nvme-error-log.html new file mode 100644 index 0000000..f1b68bf --- /dev/null +++ b/Documentation/nvme-error-log.html @@ -0,0 +1,856 @@ + + + + + + +nvme-error-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme error-log <device>  [--log-entries=<entries> | -e <entries>]
+                         [--raw-binary | -b]
+                         [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves NVMe Error log page from an NVMe device and provides the +returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned error log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-e <entries> +
+
+--log-entries=<entries> +
+
+

+ Specifies how many log entries the program should request from + the device. This must be at least one, and shouldn’t exceed the + device’s capabilities. Defaults to 64 log entries. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw error log buffer to stdout. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Get the error log and print it in a human readable format: +

    +
    +
    +
    # nvme error-log /dev/nvme0
    +
    +
  • +
  • +

    +Print the raw output to a file: +

    +
    +
    +
    # nvme error-log /dev/nvme0 --raw-binary > error_log.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-error-log.txt b/Documentation/nvme-error-log.txt new file mode 100644 index 0000000..eebaca7 --- /dev/null +++ b/Documentation/nvme-error-log.txt @@ -0,0 +1,65 @@ +nvme-error-log(1) +================= + +NAME +---- +nvme-error-log - Send NVME Error log page request, return result and log + +SYNOPSIS +-------- +[verse] +'nvme error-log' [--log-entries= | -e ] + [--raw-binary | -b] + [--output-format= | -o ] + +DESCRIPTION +----------- +Retrieves NVMe Error log page from an NVMe device and provides the +returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned error log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-e :: +--log-entries=:: + Specifies how many log entries the program should request from + the device. This must be at least one, and shouldn't exceed the + device's capabilities. Defaults to 64 log entries. + +-b:: +--raw-binary:: + Print the raw error log buffer to stdout. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + + +EXAMPLES +-------- +* Get the error log and print it in a human readable format: ++ +------------ +# nvme error-log /dev/nvme0 +------------ ++ + +* Print the raw output to a file: ++ +------------ +# nvme error-log /dev/nvme0 --raw-binary > error_log.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-flush.1 b/Documentation/nvme-flush.1 new file mode 100644 index 0000000..3c4ddeb --- /dev/null +++ b/Documentation/nvme-flush.1 @@ -0,0 +1,51 @@ +'\" t +.\" Title: nvme-flush +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-FLUSH" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-flush \- Flush command\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme flush\fR [\-\-namespace\-id= | \-n ] +.fi +.SH "DESCRIPTION" +.sp +The Flush command shall commit data and metadata associated with the specified namespace(s) to nonvolatile media\&. The flush applies to all commands completed prior to the submission of the Flush command\&. The controller may also flush additional data and/or metadata from any namespace\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Specify the optional namespace id for this command\&. Defaults to 0xffffffff, indicating flush for all namespaces\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-flush.html b/Documentation/nvme-flush.html new file mode 100644 index 0000000..3a21e65 --- /dev/null +++ b/Documentation/nvme-flush.html @@ -0,0 +1,803 @@ + + + + + +nvme-flush(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme flush <device> [--namespace-id=<nsid> | -n <nsid>]
+
+
+
+
+
+

DESCRIPTION

+
+

The Flush command shall commit data and metadata associated with the +specified namespace(s) to nonvolatile media. The flush applies to +all commands completed prior to the submission of the Flush command. +The controller may also flush additional data and/or metadata from +any namespace.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Specify the optional namespace id for this command. Defaults to + 0xffffffff, indicating flush for all namespaces. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-flush.txt b/Documentation/nvme-flush.txt new file mode 100644 index 0000000..28cfa63 --- /dev/null +++ b/Documentation/nvme-flush.txt @@ -0,0 +1,34 @@ +nvme-flush(1) +============= + +NAME +---- +nvme-flush - Flush command. + +SYNOPSIS +-------- +[verse] +'nvme flush' [--namespace-id= | -n ] + +DESCRIPTION +----------- +The Flush command shall commit data and metadata associated with the +specified namespace(s) to nonvolatile media. The flush applies to +all commands completed prior to the submission of the Flush command. +The controller may also flush additional data and/or metadata from +any namespace. + +OPTIONS +------- +-n :: +--namespace-id=:: + Specify the optional namespace id for this command. Defaults to + 0xffffffff, indicating flush for all namespaces. + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-format.1 b/Documentation/nvme-format.1 new file mode 100644 index 0000000..b47c53e --- /dev/null +++ b/Documentation/nvme-format.1 @@ -0,0 +1,225 @@ +'\" t +.\" Title: nvme-format +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-FORMAT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-format \- Format an NVMe device +.SH "SYNOPSIS" +.sp +.nf +\fInvme format\fR [\-\-namespace\-id= | \-n ] + [\-\-lbaf= | \-l ] + [\-\-block\-size=] + [\-\-ses= | \-s ] + [\-\-pil= | \-p ] + [\-\-pi= | \-i ] + [\-\-ms= | \-m ] + [\-\-reset | \-r ] + [\-\-force | \-f ] + [\-\-timeout= | \-t ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, send an nvme Format Namespace admin command and provides the results\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. If the character device is given, and the controller does not support formatting of particular namespaces (ID_CTRL\&.FNA bit 0 enabled), then all namespaces will be formatted\&. If FNA is disabled, then the namespace identifier must be specified with the \fInamespace\-id\fR option; specify a value of 0xffffffff to send the format to all namespaces\&. If the block device is given, the namespace identifier will default to the namespace ID of the block device given, but can be overridden with the same option\&. +.sp +Note, the numeric suffix on the character device, for example the \fI0\fR in /dev/nvme0, does NOT indicate this device handle is the parent controller of any namespaces with the same suffix\&. The namespace handle\(cqs numeral may be coming from the subsystem identifier, which is independent of the controller\(cqs identifier\&. Do not assume any particular device relationship based on their names\&. If you do, you may irrevocably erase data on an unintended device\&. +.sp +On success, the program will automatically issue BLKRRPART ioctl to force rescanning the namespaces\&. If the driver is recent enough, this will automatically update the physical block size\&. If it is not recent enough, you will need to remove and rescan your device some other way for the new block size to be visible, if the size was changed with this command\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Send the format command for the specified nsid\&. This can be used to override the default value for either character device (unspecified) or the block device (result from NVME_IOCTL_ID)\&. +.RE +.PP +\-l , \-\-lbaf= +.RS 4 +LBA Format: This field specifies the LBA format to apply to the NVM media\&. This corresponds to the LBA formats indicated in the Identify Namespace command\&. Conflicts with \-\-block\-size argument\&. Defaults to 0\&. +.RE +.PP +\-b , \-\-block\-size= +.RS 4 +Block Size: This field is used to specify the target block size to format to\&. Potential lbaf values will be scanned and the lowest numbered will be selected for the format operation\&. Conflicts with \-\-lbaf argument\&. +.RE +.PP +\-s , \-\-ses= +.RS 4 +Secure Erase Settings: This field specifies whether a secure erase should be performed as part of the format and the type of the secure erase operation\&. The erase applies to all user data, regardless of location (e\&.g\&., within an exposed LBA, within a cache, within deallocated LBAs, etc)\&. Defaults to 0\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0 +T}:T{ +No secure erase operation requested +T} +T{ +1 +T}:T{ +User Data Erase: All user data shall be erased, contents of the user data after the erase is indeterminate (e\&.g\&., the user data may be zero filled, one filled, etc)\&. The controller may perform a cryptographic erase when a User Data Erase is requested if all user data is encrypted\&. +T} +T{ +2 +T}:T{ +Cryptographic Erase: All user data shall be erased cryptographically\&. This is accomplished by deleting the encryption key\&. +T} +T{ +3\(en7 +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-p , \-\-pil= +.RS 4 +Protection Information Location: If set to \(oq1\(cq and protection information is enabled, then protection information is transferred as the first eight bytes of metadata\&. If cleared to \(oq0\(cq and protection information is enabled, then protection information is transferred as the last eight bytes of metadata\&. Defaults to 0\&. +.RE +.PP +\-i , \-\-pi= +.RS 4 +Protection Information: This field specifies whether end\-to\-end data protection is enabled and the type of protection information\&. Defaults to 0\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0 +T}:T{ +Protection information is not enabled +T} +T{ +1 +T}:T{ +Protection information is enabled, Type 1 +T} +T{ +2 +T}:T{ +Protection information is enabled, Type 2 +T} +T{ +3 +T}:T{ +Protection information is enabled, Type 3 +T} +T{ +4\(en7 +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-m , \-\-ms= +.RS 4 +Metadata Settings: This field is set to \(oq1\(cq if the metadata is transferred as part of an extended data LBA\&. This field is cleared to \(oq0\(cq if the metadata is transferred as part of a separate buffer\&. The metadata may include protection information, based on the Protection Information (PI) field\&. Defaults to 0\&. +.RE +.PP +\-r, \-\-reset +.RS 4 +Issue a reset after successful format\&. Must use the character device for this\&. +.RE +.PP +\-f, \-\-force +.RS 4 +Just send the command immediately without warning of the implications\&. +.RE +.PP +\-t , \-\-timeout= +.RS 4 +Override default timeout value\&. In milliseconds\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Format the device using all defaults: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme format /dev/nvme0n1 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Format namespace 1 with user data secure erase settings and protection information: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme format /dev/nvme0 \-\-namespace\-id=1 \-\-ses=1 \-\-pi=1 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-format.html b/Documentation/nvme-format.html new file mode 100644 index 0000000..032a870 --- /dev/null +++ b/Documentation/nvme-format.html @@ -0,0 +1,1045 @@ + + + + + + +nvme-format(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme format <device> [--namespace-id=<nsid> | -n <nsid>]
+                    [--lbaf=<lbaf> | -l <lbaf>]
+                    [--block-size=<block size | -b <block size>]
+                    [--ses=<ses> | -s <ses>]
+                    [--pil=<pil> | -p <pil>]
+                    [--pi=<pi> | -i <pi>]
+                    [--ms=<ms> | -m <ms>]
+                    [--reset | -r ]
+                    [--force | -f ]
+                    [--timeout=<timeout> | -t <timeout> ]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, send an nvme Format Namespace admin command +and provides the results.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, and the controller does not support +formatting of particular namespaces (ID_CTRL.FNA bit 0 enabled), then all +namespaces will be formatted. If FNA is disabled, then the namespace +identifier must be specified with the namespace-id option; specify a +value of 0xffffffff to send the format to all namespaces. If the block +device is given, the namespace identifier will default to the namespace +ID of the block device given, but can be overridden with the same option.

+

Note, the numeric suffix on the character device, for example the 0 in +/dev/nvme0, does NOT indicate this device handle is the parent controller +of any namespaces with the same suffix. The namespace handle’s numeral +may be coming from the subsystem identifier, which is independent of the +controller’s identifier. Do not assume any particular device relationship +based on their names. If you do, you may irrevocably erase data on an +unintended device.

+

On success, the program will automatically issue BLKRRPART ioctl to +force rescanning the namespaces. If the driver is recent enough, this will +automatically update the physical block size. If it is not recent enough, +you will need to remove and rescan your device some other way for the +new block size to be visible, if the size was changed with this command.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Send the format command for the specified nsid. This can be + used to override the default value for either character device + (unspecified) or the block device (result from NVME_IOCTL_ID). +

+
+
+-l <lbaf> +
+
+--lbaf=<lbaf> +
+
+

+ LBA Format: This field specifies the LBA format to apply to the NVM + media. This corresponds to the LBA formats indicated in the + Identify Namespace command. Conflicts with --block-size argument. + Defaults to 0. +

+
+
+-b <block size> +
+
+--block-size=<block size> +
+
+

+ Block Size: This field is used to specify the target block size to + format to. Potential lbaf values will be scanned and the lowest + numbered will be selected for the format operation. Conflicts with + --lbaf argument. +

+
+
+-s <ses> +
+
+--ses=<ses> +
+
+

+ Secure Erase Settings: This field specifies whether a secure + erase should be performed as part of the format and the type of + the secure erase operation. The erase applies to all user data, + regardless of location (e.g., within an exposed LBA, within a + cache, within deallocated LBAs, etc). Defaults to 0. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0

No secure erase operation requested

1

User Data Erase: All user data shall be erased, contents of the user +data after the erase is indeterminate (e.g., the user data may be zero +filled, one filled, etc). The controller may perform a cryptographic +erase when a User Data Erase is requested if all user data is encrypted.

2

Cryptographic Erase: All user data shall be erased +cryptographically. This is accomplished by deleting the encryption key.

3–7

Reserved

+
+
+
+-p <pil> +
+
+--pil=<pil> +
+
+

+ Protection Information Location: If set to ‘1’ and protection + information is enabled, then protection information is transferred + as the first eight bytes of metadata. If cleared to ‘0’ and + protection information is enabled, then protection information + is transferred as the last eight bytes of metadata. Defaults to 0. +

+
+
+-i <pi> +
+
+--pi=<pi> +
+
+

+ Protection Information: This field specifies whether end-to-end + data protection is enabled and the type of protection + information. Defaults to 0. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0

Protection information is not enabled

1

Protection information is enabled, Type 1

2

Protection information is enabled, Type 2

3

Protection information is enabled, Type 3

4–7

Reserved

+
+
+
+-m <ms> +
+
+--ms=<ms> +
+
+

+ Metadata Settings: This field is set to ‘1’ if the metadata + is transferred as part of an extended data LBA. This field is + cleared to ‘0’ if the metadata is transferred as part of a + separate buffer. The metadata may include protection information, + based on the Protection Information (PI) field. Defaults to 0. +

+
+
+-r +
+
+--reset +
+
+

+ Issue a reset after successful format. Must use the character + device for this. +

+
+
+-f +
+
+--force +
+
+

+ Just send the command immediately without warning of the implications. +

+
+
+-t <timeout> +
+
+--timeout=<timeout> +
+
+

+ Override default timeout value. In milliseconds. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Format the device using all defaults: +

    +
    +
    +
    # nvme format /dev/nvme0n1
    +
    +
  • +
  • +

    +Format namespace 1 with user data secure erase settings and protection +information: +

    +
    +
    +
    # nvme format /dev/nvme0 --namespace-id=1 --ses=1 --pi=1
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-format.txt b/Documentation/nvme-format.txt new file mode 100644 index 0000000..9ef788a --- /dev/null +++ b/Documentation/nvme-format.txt @@ -0,0 +1,157 @@ +nvme-format(1) +============== + +NAME +---- +nvme-format - Format an NVMe device + +SYNOPSIS +-------- +[verse] +'nvme format' [--namespace-id= | -n ] + [--lbaf= | -l ] + [--block-size=] + [--ses= | -s ] + [--pil= | -p ] + [--pi= | -i ] + [--ms= | -m ] + [--reset | -r ] + [--force | -f ] + [--timeout= | -t ] + +DESCRIPTION +----------- +For the NVMe device given, send an nvme Format Namespace admin command +and provides the results. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, and the controller does not support +formatting of particular namespaces (ID_CTRL.FNA bit 0 enabled), then all +namespaces will be formatted. If FNA is disabled, then the namespace +identifier must be specified with the 'namespace-id' option; specify a +value of 0xffffffff to send the format to all namespaces. If the block +device is given, the namespace identifier will default to the namespace +ID of the block device given, but can be overridden with the same option. + +Note, the numeric suffix on the character device, for example the '0' in +/dev/nvme0, does NOT indicate this device handle is the parent controller +of any namespaces with the same suffix. The namespace handle's numeral +may be coming from the subsystem identifier, which is independent of the +controller's identifier. Do not assume any particular device relationship +based on their names. If you do, you may irrevocably erase data on an +unintended device. + +On success, the program will automatically issue BLKRRPART ioctl to +force rescanning the namespaces. If the driver is recent enough, this will +automatically update the physical block size. If it is not recent enough, +you will need to remove and rescan your device some other way for the +new block size to be visible, if the size was changed with this command. + +OPTIONS +------- +-n :: +--namespace-id=:: + Send the format command for the specified nsid. This can be + used to override the default value for either character device + (unspecified) or the block device (result from NVME_IOCTL_ID). + +-l :: +--lbaf=:: + LBA Format: This field specifies the LBA format to apply to the NVM + media. This corresponds to the LBA formats indicated in the + Identify Namespace command. Conflicts with --block-size argument. + Defaults to 0. + +-b :: +--block-size=:: + Block Size: This field is used to specify the target block size to + format to. Potential lbaf values will be scanned and the lowest + numbered will be selected for the format operation. Conflicts with + --lbaf argument. + +-s :: +--ses=:: + Secure Erase Settings: This field specifies whether a secure + erase should be performed as part of the format and the type of + the secure erase operation. The erase applies to all user data, + regardless of location (e.g., within an exposed LBA, within a + cache, within deallocated LBAs, etc). Defaults to 0. ++ +[] +|================= +|Value|Definition +|0|No secure erase operation requested +|1|User Data Erase: All user data shall be erased, contents of the user +data after the erase is indeterminate (e.g., the user data may be zero +filled, one filled, etc). The controller may perform a cryptographic +erase when a User Data Erase is requested if all user data is encrypted. +|2|Cryptographic Erase: All user data shall be erased +cryptographically. This is accomplished by deleting the encryption key. +|3–7|Reserved +|================= + +-p :: +--pil=:: + Protection Information Location: If set to ‘1’ and protection + information is enabled, then protection information is transferred + as the first eight bytes of metadata. If cleared to ‘0’ and + protection information is enabled, then protection information + is transferred as the last eight bytes of metadata. Defaults to 0. + +-i :: +--pi=:: + Protection Information: This field specifies whether end-to-end + data protection is enabled and the type of protection + information. Defaults to 0. ++ +[] +|================= +|Value|Definition +|0|Protection information is not enabled +|1|Protection information is enabled, Type 1 +|2|Protection information is enabled, Type 2 +|3|Protection information is enabled, Type 3 +|4–7|Reserved +|================= + +-m :: +--ms=:: + Metadata Settings: This field is set to ‘1’ if the metadata + is transferred as part of an extended data LBA. This field is + cleared to ‘0’ if the metadata is transferred as part of a + separate buffer. The metadata may include protection information, + based on the Protection Information (PI) field. Defaults to 0. + +-r:: +--reset:: + Issue a reset after successful format. Must use the character + device for this. + +-f:: +--force:: + Just send the command immediately without warning of the implications. + +-t :: +--timeout=:: + Override default timeout value. In milliseconds. + +EXAMPLES +-------- +* Format the device using all defaults: ++ +------------ +# nvme format /dev/nvme0n1 +------------ ++ + +* Format namespace 1 with user data secure erase settings and protection +information: ++ +------------ +# nvme format /dev/nvme0 --namespace-id=1 --ses=1 --pi=1 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-fw-commit.1 b/Documentation/nvme-fw-commit.1 new file mode 100644 index 0000000..2a965a7 --- /dev/null +++ b/Documentation/nvme-fw-commit.1 @@ -0,0 +1,147 @@ +'\" t +.\" Title: nvme-fw-commit +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-FW\-COMMIT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-fw-commit \- Used to verify and commit a firmware image\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme fw\-commit\fR [\-\-slot= | \-s ] + [\-\-action= | \-a ] + [\-\-bpid= | \-b ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, send an nvme Firmware Commit admin command and provides the results\&. +.sp +The Firmware Commit command is used to verify that a valid firmware image has been downloaded and to commit that revision to a specific firmware slot\&. The host may select the firmware image to commit on the next controller reset (CC\&.EN transitions from \(oq1\(cq to \(oq0\(cq, a PCI function level reset, and/or other Controller or NVM Subsystem Reset) as part of this command\&. The currently executing firmware revision may be determined from the Firmware Revision field of the Identify Controller data structure as indicated in the Firmware Slot Information log page\&. +.sp +No further action is automatically taken to reset the device, which is usually required to complete the activation process\&. If your kernel and driver are recent enough, you can commit the firmware by issuing a reset through Linux sysfs, for example: +.sp +.if n \{\ +.RS 4 +.\} +.nf + # echo 1 > /sys/class/nvme/nvme0/device/reset +.fi +.if n \{\ +.RE +.\} +.sp +If your kernel is not recent enough, you will need to remove and add the device some other way\&. +.SH "OPTIONS" +.PP +\-a , \-\-action= +.RS 4 +Commit Action: This field specifies the action that is taken on the image downloaded with the Firmware Image Download command or on a previously downloaded and placed image\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0 +T}:T{ +Downloaded image replaces the image indicated by the Firmware Slot field\&. This image is not activated\&. +T} +T{ +1 +T}:T{ +Downloaded image replaces the image indicated by the Firmware Slot field\&. This image is activated at the next reset\&. +T} +T{ +2 +T}:T{ +The image indicated by the Firmware Slot field is activated at the next reset\&. +T} +T{ +3 +T}:T{ +The image specified by the Firmware Slot field is requested to be activated immediately without reset\&. +T} +T{ +6 +T}:T{ +Downloaded image replaces the Boot Partition specified by the Boot Partition ID field\&. +T} +T{ +7 +T}:T{ +Mark the Boot Partition specified in the BPID field as active and update BPINFO\&.ABPID\&. +T} +.TE +.sp 1 +.RE +.PP +\-s , \-\-slot= +.RS 4 +Firmware Slot: Specifies the firmware slot that shall be used for the Commit Action, if applicable\&. If the value specified is 0h, then the controller shall choose the firmware slot (slot 1 \(en 7) to use for the operation\&. +.RE +.PP +\-\-bpid=, \-b +.RS 4 +Specifiies the Boot partition that shall be used for the Commit Action, if applicable (default: 0) +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +commit the last downloaded fw to slot 1\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme fw\-commit /dev/nvme0 \-\-slot=1 \-\-action=2 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "ALIAS" +.sp +fw\-activate +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-fw-commit.html b/Documentation/nvme-fw-commit.html new file mode 100644 index 0000000..39f749f --- /dev/null +++ b/Documentation/nvme-fw-commit.html @@ -0,0 +1,908 @@ + + + + + +nvme-fw-commit(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme fw-commit <device> [--slot=<slot> | -s <slot>]
+                    [--action=<action> | -a <action>]
+                    [--bpid=<boot-partid> | -b <boot-partid> ]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, send an nvme Firmware Commit admin command +and provides the results.

+

The Firmware Commit command is used to verify that a valid firmware +image has been downloaded and to commit that revision to a specific +firmware slot. The host may select the firmware image to commit on the +next controller reset (CC.EN transitions from ‘1’ to ‘0’, a PCI +function level reset, and/or other Controller or NVM Subsystem Reset) +as part of this command. The currently executing firmware revision may +be determined from the Firmware Revision field of the Identify Controller +data structure as indicated in the Firmware Slot Information log page.

+

No further action is automatically taken to reset the device, which is +usually required to complete the activation process. If your kernel and +driver are recent enough, you can commit the firmware by issuing a +reset through Linux sysfs, for example:

+
+
+
 # echo 1 > /sys/class/nvme/nvme0/device/reset
+
+

If your kernel is not recent enough, you will need to remove and add +the device some other way.

+
+
+
+

OPTIONS

+
+
+
+-a <action> +
+
+--action=<action> +
+
+

+ Commit Action: This field specifies the action that is taken + on the image downloaded with the Firmware Image Download command + or on a previously downloaded and placed image. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0

Downloaded image replaces the image indicated by the Firmware Slot +field. This image is not activated.

1

Downloaded image replaces the image indicated by the Firmware Slot +field. This image is activated at the next reset.

2

The image indicated by the Firmware Slot field is activated at the +next reset.

3

The image specified by the Firmware Slot field is requested to be +activated immediately without reset.

6

Downloaded image replaces the Boot Partition specified by the Boot Partition +ID field.

7

Mark the Boot Partition specified in the BPID field as active and update +BPINFO.ABPID.

+
+
+
+-s <slot> +
+
+--slot=<slot> +
+
+

+ Firmware Slot: Specifies the firmware slot that shall be used for + the Commit Action, if applicable. If the value specified is 0h, + then the controller shall choose the firmware slot (slot 1 – 7) + to use for the operation. +

+
+
+--bpid=<boot-partid> +
+
+-b <boot-partid> +
+
+

+ Specifiies the Boot partition that shall be used for the Commit Action, + if applicable (default: 0) +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +commit the last downloaded fw to slot 1. +

    +
    +
    +
    # nvme fw-commit /dev/nvme0 --slot=1 --action=2
    +
    +
  • +
+
+
+
+

ALIAS

+
+

fw-activate

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-fw-commit.txt b/Documentation/nvme-fw-commit.txt new file mode 100644 index 0000000..c164c5a --- /dev/null +++ b/Documentation/nvme-fw-commit.txt @@ -0,0 +1,93 @@ +nvme-fw-commit(1) +================= + +NAME +---- +nvme-fw-commit - Used to verify and commit a firmware image. + +SYNOPSIS +-------- +[verse] +'nvme fw-commit' [--slot= | -s ] + [--action= | -a ] + [--bpid= | -b ] + +DESCRIPTION +----------- +For the NVMe device given, send an nvme Firmware Commit admin command +and provides the results. + +The Firmware Commit command is used to verify that a valid firmware +image has been downloaded and to commit that revision to a specific +firmware slot. The host may select the firmware image to commit on the +next controller reset (CC.EN transitions from ‘1’ to ‘0’, a PCI +function level reset, and/or other Controller or NVM Subsystem Reset) +as part of this command. The currently executing firmware revision may +be determined from the Firmware Revision field of the Identify Controller +data structure as indicated in the Firmware Slot Information log page. + +No further action is automatically taken to reset the device, which is +usually required to complete the activation process. If your kernel and +driver are recent enough, you can commit the firmware by issuing a +reset through Linux sysfs, for example: + +------------ + # echo 1 > /sys/class/nvme/nvme0/device/reset +------------ + +If your kernel is not recent enough, you will need to remove and add +the device some other way. + +OPTIONS +------- +-a :: +--action=:: + Commit Action: This field specifies the action that is taken + on the image downloaded with the Firmware Image Download command + or on a previously downloaded and placed image. ++ +[] +|================= +|Value|Definition +|0|Downloaded image replaces the image indicated by the Firmware Slot +field. This image is not activated. +|1|Downloaded image replaces the image indicated by the Firmware Slot +field. This image is activated at the next reset. +|2|The image indicated by the Firmware Slot field is activated at the +next reset. +|3|The image specified by the Firmware Slot field is requested to be +activated immediately without reset. +|6|Downloaded image replaces the Boot Partition specified by the Boot Partition +ID field. +|7|Mark the Boot Partition specified in the BPID field as active and update +BPINFO.ABPID. +|================= + +-s :: +--slot=:: + Firmware Slot: Specifies the firmware slot that shall be used for + the Commit Action, if applicable. If the value specified is 0h, + then the controller shall choose the firmware slot (slot 1 – 7) + to use for the operation. + +--bpid=:: +-b :: + Specifiies the Boot partition that shall be used for the Commit Action, + if applicable (default: 0) + +EXAMPLES +-------- +* commit the last downloaded fw to slot 1. ++ +------------ +# nvme fw-commit /dev/nvme0 --slot=1 --action=2 +------------ + +ALIAS +----- + +fw-activate + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-fw-download.1 b/Documentation/nvme-fw-download.1 new file mode 100644 index 0000000..0fd360b --- /dev/null +++ b/Documentation/nvme-fw-download.1 @@ -0,0 +1,88 @@ +'\" t +.\" Title: nvme-fw-download +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-FW\-DOWNLOAD" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-fw-download \- Download all or a portion of an nvme firmware image\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme fw\-download\fR [\-\-fw= | \-f ] + [\-\-xfer= | \-x ] + [\-\-offset= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +The Firmware Image Download command is used to download all or a portion of the firmware image for a future update to the controller\&. The Firmware Image Download command may be submitted while other commands on the Admin Submission Queue or I/O Submission Queues are outstanding\&. The Firmware Image Download command copies the new firmware image (in whole or in part) to the controller\&. +.sp +The firmware image may be constructed of multiple pieces that are individually downloaded with separate Firmware Image Download commands\&. Each Firmware Image Download command includes a Dword Offset and Number of Dwords that specify a Dword range\&. The host software shall ensure that firmware pieces do not have Dword ranges that overlap\&. Firmware portions may be submitted out of order to the controller\&. +.sp +The new firmware image is not applied as part of the Firmware Image Download command\&. It is applied following a reset, where the image to apply and the firmware slot it should be committed to is specified with the Firmware Commit command (nvme fw\-commit )\&. +.SH "OPTIONS" +.PP +\-f , \-\-fw= +.RS 4 +Required argument\&. This specifies the path to the device\(cqs firmware file on your system that will be read by the program and sent to the device\&. +.RE +.PP +\-x , \-\-xfer= +.RS 4 +This specifies the size to split each transfer\&. This is useful if the device has a max transfer size requirement for firmware\&. It defaults to 4k\&. +.RE +.PP +\-o , \-\-offset= +.RS 4 +This specifies the starting offset in dwords\&. This is really only useful if your firmware is split in multiple files; otherwise the offset starts at zero and automatically adjusts based on the +\fIxfer\fR +size given\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Transfer a firmware size 128KiB at a time: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme fw\-download /dev/nvme0 \-\-fw=/path/to/nvme\&.fw \-\-xfer=0x20000 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-fw-download.html b/Documentation/nvme-fw-download.html new file mode 100644 index 0000000..e37ca2f --- /dev/null +++ b/Documentation/nvme-fw-download.html @@ -0,0 +1,859 @@ + + + + + + +nvme-fw-download(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme fw-download <device> [--fw=<firmware-file> | -f <firmware-file>]
+                    [--xfer=<transfer-size> | -x <transfer-size>]
+                    [--offset=<offset> | -o <offset>]
+
+
+
+
+
+

DESCRIPTION

+
+

The Firmware Image Download command is used to download all or a portion +of the firmware image for a future update to the controller. The Firmware +Image Download command may be submitted while other commands on the Admin +Submission Queue or I/O Submission Queues are outstanding. The Firmware +Image Download command copies the new firmware image (in whole or in part) +to the controller.

+

The firmware image may be constructed of multiple pieces that +are individually downloaded with separate Firmware Image Download +commands. Each Firmware Image Download command includes a Dword +Offset and Number of Dwords that specify a Dword range. The host +software shall ensure that firmware pieces do not have Dword ranges +that overlap. Firmware portions may be submitted out of order to the +controller.

+

The new firmware image is not applied as part of the Firmware Image +Download command. It is applied following a reset, where the image to +apply and the firmware slot it should be committed to is specified with +the Firmware Commit command (nvme fw-commit <args>).

+
+
+
+

OPTIONS

+
+
+
+-f <firmware-file> +
+
+--fw=<firmeware-file> +
+
+

+ Required argument. This specifies the path to the device’s + firmware file on your system that will be read by the program + and sent to the device. +

+
+
+-x <transfer-size> +
+
+--xfer=<transfer-size> +
+
+

+ This specifies the size to split each transfer. This is useful if + the device has a max transfer size requirement for firmware. It + defaults to 4k. +

+
+
+-o <offset> +
+
+--offset=<offset> +
+
+

+ This specifies the starting offset in dwords. This is really only + useful if your firmware is split in multiple files; otherwise + the offset starts at zero and automatically adjusts based on the + xfer size given. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Transfer a firmware size 128KiB at a time: +

    +
    +
    +
    # nvme fw-download /dev/nvme0 --fw=/path/to/nvme.fw --xfer=0x20000
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-fw-download.txt b/Documentation/nvme-fw-download.txt new file mode 100644 index 0000000..6b11d05 --- /dev/null +++ b/Documentation/nvme-fw-download.txt @@ -0,0 +1,68 @@ +nvme-fw-download(1) +=================== + +NAME +---- +nvme-fw-download - Download all or a portion of an nvme firmware image. + +SYNOPSIS +-------- +[verse] +'nvme fw-download' [--fw= | -f ] + [--xfer= | -x ] + [--offset= | -o ] + +DESCRIPTION +----------- +The Firmware Image Download command is used to download all or a portion +of the firmware image for a future update to the controller. The Firmware +Image Download command may be submitted while other commands on the Admin +Submission Queue or I/O Submission Queues are outstanding. The Firmware +Image Download command copies the new firmware image (in whole or in part) +to the controller. + +The firmware image may be constructed of multiple pieces that +are individually downloaded with separate Firmware Image Download +commands. Each Firmware Image Download command includes a Dword +Offset and Number of Dwords that specify a Dword range. The host +software shall ensure that firmware pieces do not have Dword ranges +that overlap. Firmware portions may be submitted out of order to the +controller. + +The new firmware image is not applied as part of the Firmware Image +Download command. It is applied following a reset, where the image to +apply and the firmware slot it should be committed to is specified with +the Firmware Commit command (nvme fw-commit ). + +OPTIONS +------- +-f :: +--fw=:: + Required argument. This specifies the path to the device's + firmware file on your system that will be read by the program + and sent to the device. + +-x :: +--xfer=:: + This specifies the size to split each transfer. This is useful if + the device has a max transfer size requirement for firmware. It + defaults to 4k. + +-o :: +--offset=:: + This specifies the starting offset in dwords. This is really only + useful if your firmware is split in multiple files; otherwise + the offset starts at zero and automatically adjusts based on the + 'xfer' size given. + +EXAMPLES +-------- +* Transfer a firmware size 128KiB at a time: ++ +------------ +# nvme fw-download /dev/nvme0 --fw=/path/to/nvme.fw --xfer=0x20000 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-fw-log.1 b/Documentation/nvme-fw-log.1 new file mode 100644 index 0000000..f96bcdc --- /dev/null +++ b/Documentation/nvme-fw-log.1 @@ -0,0 +1,106 @@ +'\" t +.\" Title: nvme-fw-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-FW\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-fw-log \- Send NVMe Firmware log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme fw\-log\fR [\-\-raw\-binary | \-b] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Firmware log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned f/w log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw fw log buffer to stdout\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the firmware log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme fw\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the log firmware to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme fw\-log /dev/nvme0 \-\-raw\-binary > fw_log\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-fw-log.html b/Documentation/nvme-fw-log.html new file mode 100644 index 0000000..15f937a --- /dev/null +++ b/Documentation/nvme-fw-log.html @@ -0,0 +1,838 @@ + + + + + +nvme-fw-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme fw-log <device> [--raw-binary | -b]
+                        [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Firmware log page from an NVMe device and provides +the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned f/w log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw fw log buffer to stdout. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the firmware log page in a human readable format: +

    +
    +
    +
    # nvme fw-log /dev/nvme0
    +
    +
  • +
  • +

    +Print the log firmware to a file: +

    +
    +
    +
    # nvme fw-log /dev/nvme0 --raw-binary > fw_log.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-fw-log.txt b/Documentation/nvme-fw-log.txt new file mode 100644 index 0000000..4b73577 --- /dev/null +++ b/Documentation/nvme-fw-log.txt @@ -0,0 +1,58 @@ +nvme-fw-log(1) +============== + +NAME +---- +nvme-fw-log - Send NVMe Firmware log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme fw-log' [--raw-binary | -b] + [--output-format= | -o ] + +DESCRIPTION +----------- +Retrieves the NVMe Firmware log page from an NVMe device and provides +the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned f/w log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw fw log buffer to stdout. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + + +EXAMPLES +-------- +* Print the firmware log page in a human readable format: ++ +------------ +# nvme fw-log /dev/nvme0 +------------ ++ + +* Print the log firmware to a file: ++ +------------ +# nvme fw-log /dev/nvme0 --raw-binary > fw_log.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-gen-hostnqn.1 b/Documentation/nvme-gen-hostnqn.1 new file mode 100644 index 0000000..255dcca --- /dev/null +++ b/Documentation/nvme-gen-hostnqn.1 @@ -0,0 +1,48 @@ +'\" t +.\" Title: nvme-gen-hostnqn +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-GEN\-HOSTNQN" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-gen-hostnqn \- Generate a host NVMe Qualified Name +.SH "SYNOPSIS" +.sp +.nf +\fInvme gen\-hostnqn\fR +.fi +.SH "DESCRIPTION" +.sp +Generate a random host NQN in the form: nqn\&.2014\-08\&.org\&.nvmexpress:uuid:1b4e28ba\-2fa1\-11d2\-883f\-0016d3cca427 and prints it to stdout\&. +.SH "OPTIONS" +.sp +No options needed +.SH "EXAMPLES" +.sp +nvme gen\-hostnqn +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-gen-hostnqn.html b/Documentation/nvme-gen-hostnqn.html new file mode 100644 index 0000000..7e3a178 --- /dev/null +++ b/Documentation/nvme-gen-hostnqn.html @@ -0,0 +1,788 @@ + + + + + +nvme-gen-hostnqn(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme gen-hostnqn
+
+
+
+
+
+

DESCRIPTION

+
+

Generate a random host NQN in the form: +nqn.2014-08.org.nvmexpress:uuid:1b4e28ba-2fa1-11d2-883f-0016d3cca427 +and prints it to stdout.

+
+
+
+

OPTIONS

+
+

No options needed

+
+
+
+

EXAMPLES

+
+

nvme gen-hostnqn

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-gen-hostnqn.txt b/Documentation/nvme-gen-hostnqn.txt new file mode 100644 index 0000000..9efefb5 --- /dev/null +++ b/Documentation/nvme-gen-hostnqn.txt @@ -0,0 +1,29 @@ +nvme-gen-hostnqn(1) +=================== + +NAME +---- +nvme-gen-hostnqn - Generate a host NVMe Qualified Name + +SYNOPSIS +-------- +[verse] +'nvme gen-hostnqn' + +DESCRIPTION +----------- +Generate a random host NQN in the form: +nqn.2014-08.org.nvmexpress:uuid:1b4e28ba-2fa1-11d2-883f-0016d3cca427 +and prints it to stdout. + +OPTIONS +------- +No options needed + +EXAMPLES +-------- +nvme gen-hostnqn + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-get-feature.1 b/Documentation/nvme-get-feature.1 new file mode 100644 index 0000000..1bc451f --- /dev/null +++ b/Documentation/nvme-get-feature.1 @@ -0,0 +1,214 @@ +'\" t +.\" Title: nvme-get-feature +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-GET\-FEATURE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-get-feature \- Gets an NVMe feature, returns applicable results +.SH "SYNOPSIS" +.sp +.nf +\fInvme get\-feature\fR [\-\-namespace\-id= | \-n ] + [\-\-feature\-id= | \-f ] [\-\-cdw11=] + [\-\-data\-len= | \-l ] + [\-\-sel=] + [\-\-raw\-binary | \-b] + [\-\-human\-readable | \-H] +.fi +.SH "DESCRIPTION" +.sp +Submits an NVMe Get Feature admin command and returns the applicable results\&. This may be the feature\(cqs value, or may also include a feature structure if the feature requires it (ex: LBA Range Type)\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned feature\(cqs structure (if applicable) may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format if it is a known structure, displayed in hex, or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the feature for the given nsid\&. This is optional and most features do not use this value\&. +.RE +.PP +\-f , \-\-feature\-id= +.RS 4 +The feature id to send with the command\&. Value provided should be in hex\&. +.RE +.PP +\-s +.RS 4 +Select (SEL): This field specifies which value of the attributes to return in the provided data: +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Select +T}:T{ +Description +T} +T{ +0 +T}:T{ +Current +T} +T{ +1 +T}:T{ +Default +T} +T{ +2 +T}:T{ +Saved +T} +T{ +3 +T}:T{ +Supported capabilities +T} +T{ +4\(en7 +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-l , \-\-data\-len= +.RS 4 +The data length for the buffer returned for this feature\&. Most known features do not use this value\&. The exception is LBA Range Type +.RE +.PP +\-\-cdw11= +.RS 4 +The value for command dword 11, if applicable\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw feature buffer to stdout if the feature returns a structure\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +This option will parse and format many of the bit fields into human\-readable formats\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Retrieves the feature for Number of Queues, or feature id 7: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-feature /dev/nvme0 \-f 7 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be printed to the screen in human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-feature /dev/nvme0 \-f 3 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Retrieves the feature for the some vendor specific feature and specifically requesting a buffer be allocate for this feature, which will be displayed to the user in as a hex dump: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-feature /dev/nvme0 \-f 0xc0 \-l 512 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The following retrieves the feature for the LBA Range Type, which implicitly requires a buffer and will be saved to a file in its raw format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-feature /dev/nvme0 \-f 3 \-\-raw\-binary > lba_range\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-get-feature.html b/Documentation/nvme-get-feature.html new file mode 100644 index 0000000..19c2444 --- /dev/null +++ b/Documentation/nvme-get-feature.html @@ -0,0 +1,961 @@ + + + + + +nvme-get-feature(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme get-feature <device> [--namespace-id=<nsid> | -n <nsid>]
+                          [--feature-id=<fid> | -f <fid>] [--cdw11=<cdw11>]
+                          [--data-len=<data-len> | -l <data-len>]
+                          [--sel=<select> | -s <select>]
+                          [--raw-binary | -b]
+                          [--human-readable | -H]
+
+
+
+
+
+

DESCRIPTION

+
+

Submits an NVMe Get Feature admin command and returns the applicable +results. This may be the feature’s value, or may also include a feature +structure if the feature requires it (ex: LBA Range Type).

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned feature’s structure (if applicable) may be +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format +if it is a known structure, displayed in hex, or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the feature for the given nsid. This is optional and + most features do not use this value. +

+
+
+-f <fid> +
+
+--feature-id=<fid> +
+
+

+ The feature id to send with the command. Value provided should + be in hex. +

+
+
+-s <select> +
+
+--sel=<select> +
+
+

+ Select (SEL): This field specifies which value of the attributes + to return in the provided data: +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + +

Select

Description

0

Current

1

Default

2

Saved

3

Supported capabilities

4–7

Reserved

+
+
+
+-l <data-len> +
+
+--data-len=<data-len> +
+
+

+ The data length for the buffer returned for this feature. Most + known features do not use this value. The exception is LBA + Range Type +

+
+
+--cdw11=<cdw11> +
+
+

+ The value for command dword 11, if applicable. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw feature buffer to stdout if the feature returns + a structure. +

+
+
+-H +
+
+--human-readable +
+
+

+ This option will parse and format many of the bit fields + into human-readable formats. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Retrieves the feature for Number of Queues, or feature id 7: +

    +
    +
    +
    # nvme get-feature /dev/nvme0 -f 7
    +
    +
  • +
  • +

    +The following retrieves the feature for the LBA Range Type, which +implicitly requires a buffer and will be printed to the screen in human +readable format: +

    +
    +
    +
    # nvme get-feature /dev/nvme0 -f 3
    +
    +
  • +
  • +

    +Retrieves the feature for the some vendor specific feature and +specifically requesting a buffer be allocate for this feature, which +will be displayed to the user in as a hex dump: +

    +
    +
    +
    # nvme get-feature /dev/nvme0 -f 0xc0 -l 512
    +
    +
  • +
  • +

    +The following retrieves the feature for the LBA Range Type, which +implicitly requires a buffer and will be saved to a file in its raw +format: +

    +
    +
    +
    # nvme get-feature /dev/nvme0 -f 3 --raw-binary > lba_range.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-get-feature.txt b/Documentation/nvme-get-feature.txt new file mode 100644 index 0000000..56542dc --- /dev/null +++ b/Documentation/nvme-get-feature.txt @@ -0,0 +1,118 @@ +nvme-get-feature(1) +=================== + +NAME +---- +nvme-get-feature - Gets an NVMe feature, returns applicable results + +SYNOPSIS +-------- +[verse] +'nvme get-feature' [--namespace-id= | -n ] + [--feature-id= | -f ] [--cdw11=] + [--data-len= | -l ] + [--sel=] + [--raw-binary | -b] + [--human-readable | -H] + +DESCRIPTION +----------- +Submits an NVMe Get Feature admin command and returns the applicable +results. This may be the feature's value, or may also include a feature +structure if the feature requires it (ex: LBA Range Type). + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned feature's structure (if applicable) may be +returned in one of several ways depending on the option flags; the +structure may parsed by the program and printed in a readable format +if it is a known structure, displayed in hex, or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the feature for the given nsid. This is optional and + most features do not use this value. + +-f :: +--feature-id=:: + The feature id to send with the command. Value provided should + be in hex. + +-s :: + Select (SEL): This field specifies which value of the attributes + to return in the provided data: ++ +[] +|================== +|Select|Description +|0|Current +|1|Default +|2|Saved +|3|Supported capabilities +|4–7|Reserved +|================== + +-l :: +--data-len=:: + The data length for the buffer returned for this feature. Most + known features do not use this value. The exception is LBA + Range Type + +--cdw11=:: + The value for command dword 11, if applicable. + +-b:: +--raw-binary:: + Print the raw feature buffer to stdout if the feature returns + a structure. + +-H:: +--human-readable:: + This option will parse and format many of the bit fields + into human-readable formats. + +EXAMPLES +-------- +* Retrieves the feature for Number of Queues, or feature id 7: ++ +------------ +# nvme get-feature /dev/nvme0 -f 7 +------------ ++ + +* The following retrieves the feature for the LBA Range Type, which +implicitly requires a buffer and will be printed to the screen in human +readable format: ++ +------------ +# nvme get-feature /dev/nvme0 -f 3 +------------ ++ + +* Retrieves the feature for the some vendor specific feature and +specifically requesting a buffer be allocate for this feature, which +will be displayed to the user in as a hex dump: ++ +------------ +# nvme get-feature /dev/nvme0 -f 0xc0 -l 512 +------------ ++ + +* The following retrieves the feature for the LBA Range Type, which +implicitly requires a buffer and will be saved to a file in its raw +format: ++ +------------ +# nvme get-feature /dev/nvme0 -f 3 --raw-binary > lba_range.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-get-log.1 b/Documentation/nvme-get-log.1 new file mode 100644 index 0000000..742a791 --- /dev/null +++ b/Documentation/nvme-get-log.1 @@ -0,0 +1,142 @@ +'\" t +.\" Title: nvme-get-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-GET\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-get-log \- Retrieves a log page from an NVMe device +.SH "SYNOPSIS" +.sp +.nf +\fInvme get\-log\fR [\-\-log\-id= | \-i ] + [\-\-log\-len= | \-l ] + [\-\-aen= | \-a ] + [\-\-namespace\-id= | \-n ] + [\-\-raw\-binary | \-b] + [\-\-lpo= | \-o ] + [\-\-lsp= | \-s ] + [\-\-rae | \-r] +.fi +.SH "DESCRIPTION" +.sp +Retrieves an arbitrary NVMe log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned log structure may be returned in one of several ways depending on the option flags; the structure may be displayed in hex by the program or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-l , \-\-log\-len= +.RS 4 +Allocates a buffer of bytes size and requests this many bytes be returned in the constructed NVMe command\&. This param is mandatory\&. +.RE +.PP +\-i , \-\-log\-id= +.RS 4 +Sets the commands requested log\-id to \&. Defaults to 0\&. +.RE +.PP +\-a , \-\-aen= +.RS 4 +Convenience field for extracting log information based on an asynchronous event notification result\&. This will override log\-id and log\-len, if set\&. +.RE +.PP +\-n , \-\-namespace\-id= +.RS 4 +Sets the command\(cqs nsid value to the given nsid\&. Defaults to 0xffffffff if not given\&. This option may not affect anything depending on the log page, which may or may not be specific to a namespace\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw log buffer to stdout\&. +.RE +.PP +\-o , \-\-lpo= +.RS 4 +The log page offset specifies the location within a log page to start returning data from\&. It\(cqs Dword\-aligned and 64\-bits\&. +.RE +.PP +\-s , \-\-lsp= +.RS 4 +The log specified field of LID\&. +.RE +.PP +\-r, \-\-rae +.RS 4 +Retain an Asynchronous Event\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get 512 bytes from log page 2 +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-log /dev/nvme0 \-\-log\-id=2 \-\-log\-len=512 +.fi +.if n \{\ +.RE +.\} +.sp +The above example will get log page 2 (SMART), and request 512 bytes\&. On success, the returned log will be dumped in hex and not interpreted by the program\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Have the program return the raw log page in binary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-log /dev/nvme0 \-log\-id=2 \-\-log\-len=512 \-\-raw\-binary > log_page_2\&.raw +# nvme get\-log /dev/nvme0 \-i 2 \-l 512 \-b > log_page_2\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is not a good idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-get-log.html b/Documentation/nvme-get-log.html new file mode 100644 index 0000000..9aa20e0 --- /dev/null +++ b/Documentation/nvme-get-log.html @@ -0,0 +1,925 @@ + + + + + + +nvme-get-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme get-log <device> [--log-id=<log-id> | -i <log-id>]
+                      [--log-len=<log-len> | -l <log-len>]
+                      [--aen=<aen> | -a <aen>]
+                      [--namespace-id=<nsid> | -n <nsid>]
+                      [--raw-binary | -b]
+                      [--lpo=<offset> | -o <offset>]
+                      [--lsp=<field> | -s <field>]
+                      [--rae | -r]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves an arbitrary NVMe log page from an NVMe device and provides +the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned log structure may be returned in one of several +ways depending on the option flags; the structure may be displayed in +hex by the program or the raw buffer may be printed to stdout for another +program to parse.

+
+
+
+

OPTIONS

+
+
+
+-l <log-len> +
+
+--log-len=<log-len> +
+
+

+ Allocates a buffer of <log-len> bytes size and requests this + many bytes be returned in the constructed NVMe command. This + param is mandatory. +

+
+
+-i <log-id> +
+
+--log-id=<log-id> +
+
+

+ Sets the commands requested log-id to <log-id>. Defaults to 0. +

+
+
+-a <aen> +
+
+--aen=<aen> +
+
+

+ Convenience field for extracting log information based on an + asynchronous event notification result. This will override log-id and + log-len, if set. +

+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Sets the command’s nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw log buffer to stdout. +

+
+
+-o <offset> +
+
+--lpo=<offset> +
+
+

+ The log page offset specifies the location within a log page to start + returning data from. It’s Dword-aligned and 64-bits. +

+
+
+-s <field> +
+
+--lsp=<field> +
+
+

+ The log specified field of LID. +

+
+
+-r +
+
+--rae +
+
+

+ Retain an Asynchronous Event. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Get 512 bytes from log page 2 +

    +
    +
    +
    # nvme get-log /dev/nvme0 --log-id=2 --log-len=512
    +
    +

    The above example will get log page 2 (SMART), and request 512 +bytes. On success, the returned log will be dumped in hex and not +interpreted by the program.

    +
  • +
  • +

    +Have the program return the raw log page in binary: +

    +
    +
    +
    # nvme get-log /dev/nvme0 -log-id=2 --log-len=512 --raw-binary > log_page_2.raw
    +# nvme get-log /dev/nvme0 -i 2 -l 512 -b > log_page_2.raw
    +
    +

    It is not a good idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-get-log.txt b/Documentation/nvme-get-log.txt new file mode 100644 index 0000000..1d49e28 --- /dev/null +++ b/Documentation/nvme-get-log.txt @@ -0,0 +1,98 @@ +nvme-get-log(1) +=============== + +NAME +---- +nvme-get-log - Retrieves a log page from an NVMe device + +SYNOPSIS +-------- +[verse] +'nvme get-log' [--log-id= | -i ] + [--log-len= | -l ] + [--aen= | -a ] + [--namespace-id= | -n ] + [--raw-binary | -b] + [--lpo= | -o ] + [--lsp= | -s ] + [--rae | -r] + +DESCRIPTION +----------- +Retrieves an arbitrary NVMe log page from an NVMe device and provides +the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned log structure may be returned in one of several +ways depending on the option flags; the structure may be displayed in +hex by the program or the raw buffer may be printed to stdout for another +program to parse. + +OPTIONS +------- +-l :: +--log-len=:: + Allocates a buffer of bytes size and requests this + many bytes be returned in the constructed NVMe command. This + param is mandatory. + +-i :: +--log-id=:: + Sets the commands requested log-id to . Defaults to 0. + +-a :: +--aen=:: + Convenience field for extracting log information based on an + asynchronous event notification result. This will override log-id and + log-len, if set. + +-n :: +--namespace-id=:: + Sets the command's nsid value to the given nsid. Defaults to + 0xffffffff if not given. This option may not affect anything + depending on the log page, which may or may not be specific to + a namespace. + +-b:: +--raw-binary:: + Print the raw log buffer to stdout. + +-o :: +--lpo=:: + The log page offset specifies the location within a log page to start + returning data from. It's Dword-aligned and 64-bits. + +-s :: +--lsp=:: + The log specified field of LID. + +-r:: +--rae:: + Retain an Asynchronous Event. + +EXAMPLES +-------- +* Get 512 bytes from log page 2 ++ +------------ +# nvme get-log /dev/nvme0 --log-id=2 --log-len=512 +------------ ++ +The above example will get log page 2 (SMART), and request 512 +bytes. On success, the returned log will be dumped in hex and not +interpreted by the program. + +* Have the program return the raw log page in binary: ++ +------------ +# nvme get-log /dev/nvme0 -log-id=2 --log-len=512 --raw-binary > log_page_2.raw +# nvme get-log /dev/nvme0 -i 2 -l 512 -b > log_page_2.raw +------------ ++ +It is not a good idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-get-ns-id.1 b/Documentation/nvme-get-ns-id.1 new file mode 100644 index 0000000..f7e69e4 --- /dev/null +++ b/Documentation/nvme-get-ns-id.1 @@ -0,0 +1,67 @@ +'\" t +.\" Title: nvme-get-ns-id +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-GET\-NS\-ID" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-get-ns-id \- Retrieves the namespace ID for an NVMe block device +.SH "SYNOPSIS" +.sp +.nf +\fInvme get\-ns\-id\fR +.fi +.SH "DESCRIPTION" +.sp +Retrieves the namespace ID for an NVMe block device\&. The param is mandatory and must be an NVMe block device (ex: /dev/nvme0n1)\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Shows the namespace id for the given block device: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-ns\-id /dev/nvme0n1 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-get-ns-id.html b/Documentation/nvme-get-ns-id.html new file mode 100644 index 0000000..bd02929 --- /dev/null +++ b/Documentation/nvme-get-ns-id.html @@ -0,0 +1,797 @@ + + + + + +nvme-get-ns-id(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme get-ns-id <device>
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the namespace ID for an NVMe block device. The <device> param +is mandatory and must be an NVMe block device (ex: /dev/nvme0n1).

+
+
+
+

OPTIONS

+
+

None

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Shows the namespace id for the given block device: +

    +
    +
    +
    # nvme get-ns-id /dev/nvme0n1
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-get-ns-id.txt b/Documentation/nvme-get-ns-id.txt new file mode 100644 index 0000000..5dcdc6d --- /dev/null +++ b/Documentation/nvme-get-ns-id.txt @@ -0,0 +1,32 @@ +nvme-get-ns-id(1) +================= + +NAME +---- +nvme-get-ns-id - Retrieves the namespace ID for an NVMe block device + +SYNOPSIS +-------- +[verse] +'nvme get-ns-id' + +DESCRIPTION +----------- +Retrieves the namespace ID for an NVMe block device. The param +is mandatory and must be an NVMe block device (ex: /dev/nvme0n1). + +OPTIONS +------- +None + +EXAMPLES +-------- +* Shows the namespace id for the given block device: ++ +------------ +# nvme get-ns-id /dev/nvme0n1 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-get-property.1 b/Documentation/nvme-get-property.1 new file mode 100644 index 0000000..116c338 --- /dev/null +++ b/Documentation/nvme-get-property.1 @@ -0,0 +1,123 @@ +'\" t +.\" Title: nvme-get-property +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-GET\-PROPERTY" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-get-property \- Reads and shows the defined NVMe controller property for NVMe over Fabric +.SH "SYNOPSIS" +.sp +.nf +\fInvme get\-property\fR [\-\-offset= | \-o ] + [\-\-human\-readable | \-H ] +.fi +.SH "DESCRIPTION" +.sp +Reads and shows the defined NVMe controller property for NVMe over Fabric\&. +.SH "OPTIONS" +.PP +\-o, \-\-offset +.RS 4 +The offset of the property\&. One of CAP=0x0, VS=0x8, CC=0x14, CSTS=0x1c, NSSR=0x20 +.RE +.PP +\-H +.RS 4 +\-\-human\-readable: Show the fields packed in the property +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +The following will run the get\-property command with offset 0 +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme get\-property /dev/nvme0 \-\-offset=0x0 \-\-human\-readable +.fi +.if n \{\ +.RE +.\} +.RE +.SH "BUGS" +.sp +Currently the CAP value is truncated to 32 bits due to a limitation in the ioctl interface\&. +.sp +In a recent enough kernel, the 64 bit value is shown in kernel traces\&. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +First enable traces by this command +.sp +.if n \{\ +.RS 4 +.\} +.nf +# echo 1 > /sys/kernel/debug/tracing/events/nvme/enable +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Then look for NVMe Fabrics command (0x7f) at trace +.sp +.if n \{\ +.RS 4 +.\} +.nf +/sys/kernel/debug/tracing/trace +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-get-property.html b/Documentation/nvme-get-property.html new file mode 100644 index 0000000..0a3fa8a --- /dev/null +++ b/Documentation/nvme-get-property.html @@ -0,0 +1,846 @@ + + + + + +nvme-get-property(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme get-property <device> [--offset=<offset> | -o <offset>]
+                                [--human-readable | -H ]
+
+
+
+
+
+

DESCRIPTION

+
+

Reads and shows the defined NVMe controller property for NVMe over Fabric.

+
+
+
+

OPTIONS

+
+
+
+-o +
+
+--offset +
+
+

+ The offset of the property. One of CAP=0x0, VS=0x8, CC=0x14, CSTS=0x1c, NSSR=0x20 +

+
+
+-H +
+
+

+--human-readable: + Show the fields packed in the property +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +The following will run the get-property command with offset 0 +

    +
    +
    +
    # nvme get-property /dev/nvme0 --offset=0x0 --human-readable
    +
    +
  • +
+
+
+
+

BUGS

+
+

Currently the CAP value is truncated to 32 bits due to a limitation in +the ioctl interface.

+

In a recent enough kernel, the 64 bit value is shown in kernel traces.

+
    +
  • +

    +First enable traces by this command +

    +
    +
    +
    # echo 1 > /sys/kernel/debug/tracing/events/nvme/enable
    +
    +
  • +
  • +

    +Then look for NVMe Fabrics command (0x7f) at trace +

    +
    +
    +
    /sys/kernel/debug/tracing/trace
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-get-property.txt b/Documentation/nvme-get-property.txt new file mode 100644 index 0000000..b2b7d29 --- /dev/null +++ b/Documentation/nvme-get-property.txt @@ -0,0 +1,62 @@ +nvme-get-property(1) +==================== + +NAME +---- +nvme-get-property - Reads and shows the defined NVMe controller property +for NVMe over Fabric + +SYNOPSIS +-------- +[verse] +'nvme get-property' [--offset= | -o ] + [--human-readable | -H ] + + +DESCRIPTION +----------- +Reads and shows the defined NVMe controller property for NVMe over Fabric. + + +OPTIONS +------- +-o:: +--offset:: + The offset of the property. One of CAP=0x0, VS=0x8, CC=0x14, CSTS=0x1c, NSSR=0x20 + +-H:: +--human-readable: + Show the fields packed in the property + + +EXAMPLES +-------- +* The following will run the get-property command with offset 0 ++ +------------ +# nvme get-property /dev/nvme0 --offset=0x0 --human-readable +------------ + + +BUGS +---- +Currently the CAP value is truncated to 32 bits due to a limitation in +the ioctl interface. + +In a recent enough kernel, the 64 bit value is shown in kernel traces. + +* First enable traces by this command ++ +------------ +# echo 1 > /sys/kernel/debug/tracing/events/nvme/enable +------------ + +* Then look for NVMe Fabrics command (0x7f) at trace ++ +------------ +/sys/kernel/debug/tracing/trace +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-help.1 b/Documentation/nvme-help.1 new file mode 100644 index 0000000..fc49411 --- /dev/null +++ b/Documentation/nvme-help.1 @@ -0,0 +1,69 @@ +'\" t +.\" Title: nvme-help +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-HELP" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-help \- Help information\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme help\fR [] +.fi +.SH "DESCRIPTION" +.sp +Provides help information, with detailed information about the given command if provided\&. +.SH "OPTIONS" +.sp +No Options +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Show help for nvme smart log: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme help smart\-log +.fi +.if n \{\ +.RE +.\} +.sp +Not much to it +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-help.html b/Documentation/nvme-help.html new file mode 100644 index 0000000..50a49a0 --- /dev/null +++ b/Documentation/nvme-help.html @@ -0,0 +1,801 @@ + + + + + + +nvme-help(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme help [<command>]
+
+
+
+
+
+

DESCRIPTION

+
+

Provides help information, with detailed information about the given command if provided.

+
+
+
+

OPTIONS

+
+

No Options

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Show help for nvme smart log: +

    +
    +
    +
    # nvme help smart-log
    +
    +

    Not much to it

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-help.txt b/Documentation/nvme-help.txt new file mode 100644 index 0000000..0c0c4cd --- /dev/null +++ b/Documentation/nvme-help.txt @@ -0,0 +1,33 @@ +nvme-help(1) +============= + +NAME +---- +nvme-help - Help information. + +SYNOPSIS +-------- +[verse] +'nvme help' [] + +DESCRIPTION +----------- +Provides help information, with detailed information about the given command if provided. + +OPTIONS +------- +No Options + +EXAMPLES +-------- +* Show help for nvme smart log: ++ +------------ +# nvme help smart-log +------------ ++ +Not much to it + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-huawei-id-ctrl.1 b/Documentation/nvme-huawei-id-ctrl.1 new file mode 100644 index 0000000..b4dbb69 --- /dev/null +++ b/Documentation/nvme-huawei-id-ctrl.1 @@ -0,0 +1,97 @@ +'\" t +.\" Title: nvme-huawei-id-ctrl +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-HUAWEI\-ID\-CT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-huawei-id-ctrl \- Send NVMe Identify Controller, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme huawei id\-ctrl\fR [\-v | \-\-vendor\-specific] [\-b | \-\-raw\-binary] + [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an identify controller command and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +This will only work on Huawei devices supporting this feature\&. Results for any other device are undefined\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.sp +If having the program decode the output for readability, this version will decode Huawei vendor unique portions of the structure\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the vendor specific and human readable options\&. +.RE +.PP +\-v, \-\-vendor\-specific +.RS 4 +In addition to parsing known fields, this option will dump the vendor specific region of the structure in hex with ascii interpretation\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +This option will parse and format many of the bit fields into human\-readable formats\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program interpret the returned buffer and display the known fields in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme huawei id\-ctrl /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-huawei-id-ctrl.html b/Documentation/nvme-huawei-id-ctrl.html new file mode 100644 index 0000000..542db9c --- /dev/null +++ b/Documentation/nvme-huawei-id-ctrl.html @@ -0,0 +1,862 @@ + + + + + + +nvme-huawei-id-ctrl(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme huawei id-ctrl <device> [-v | --vendor-specific] [-b | --raw-binary]
+                        [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an identify controller command and +provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

This will only work on Huawei devices supporting this feature. +Results for any other device are undefined.

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+

If having the program decode the output for readability, this version +will decode Huawei vendor unique portions of the structure.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. +

+
+
+-v +
+
+--vendor-specific +
+
+

+ In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. +

+
+
+-H +
+
+--human-readable +
+
+

+ This option will parse and format many of the bit fields + into human-readable formats. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program interpret the returned buffer and display the known +fields in a human readable format: +

    +
    +
    +
    # nvme huawei id-ctrl /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-huawei-id-ctrl.txt b/Documentation/nvme-huawei-id-ctrl.txt new file mode 100644 index 0000000..f4d2f80 --- /dev/null +++ b/Documentation/nvme-huawei-id-ctrl.txt @@ -0,0 +1,66 @@ +nvme-huawei-id-ctrl(1) +====================== + +NAME +---- +nvme-huawei-id-ctrl - Send NVMe Identify Controller, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme huawei id-ctrl' [-v | --vendor-specific] [-b | --raw-binary] + [-o | --output-format=] + +DESCRIPTION +----------- +For the NVMe device given, sends an identify controller command and +provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +This will only work on Huawei devices supporting this feature. +Results for any other device are undefined. + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +If having the program decode the output for readability, this version +will decode Huawei vendor unique portions of the structure. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. + +-v:: +--vendor-specific:: + In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. + +-H:: +--human-readable:: + This option will parse and format many of the bit fields + into human-readable formats. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Has the program interpret the returned buffer and display the known +fields in a human readable format: ++ +------------ +# nvme huawei id-ctrl /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-huawei-list.1 b/Documentation/nvme-huawei-list.1 new file mode 100644 index 0000000..3cbe6f4 --- /dev/null +++ b/Documentation/nvme-huawei-list.1 @@ -0,0 +1,54 @@ +'\" t +.\" Title: nvme-list +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LIST" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-huawei-list \- List all recognized Huawei NVMe devices +.SH "SYNOPSIS" +.sp +.nf +\fInvme huawei list\fR [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +Scan the sysfs tree for NVM Express devices and return the /dev node for those Huawei devices as well as some pertinent information about them\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR +or +\fIjson\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-huawei-list.html b/Documentation/nvme-huawei-list.html new file mode 100644 index 0000000..57c1ff9 --- /dev/null +++ b/Documentation/nvme-huawei-list.html @@ -0,0 +1,800 @@ + + + + + +nvme-list(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme huawei list [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Scan the sysfs tree for NVM Express devices and return the /dev node +for those Huawei devices as well as some pertinent information about them.

+
+
+
+

OPTIONS

+
+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal or json. Only one output + format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-huawei-list.txt b/Documentation/nvme-huawei-list.txt new file mode 100644 index 0000000..65a6c21 --- /dev/null +++ b/Documentation/nvme-huawei-list.txt @@ -0,0 +1,31 @@ +nvme-list(1) +============ + +NAME +---- +nvme-huawei-list - List all recognized Huawei NVMe devices + +SYNOPSIS +-------- +[verse] +'nvme huawei list' [-o | --output-format=] + +DESCRIPTION +----------- +Scan the sysfs tree for NVM Express devices and return the /dev node +for those Huawei devices as well as some pertinent information about them. + +OPTIONS +------- +-o :: +--output-format=:: + Set the reporting format to 'normal' or 'json'. Only one output + format can be used at a time. + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-id-ctrl.1 b/Documentation/nvme-id-ctrl.1 new file mode 100644 index 0000000..258188a --- /dev/null +++ b/Documentation/nvme-id-ctrl.1 @@ -0,0 +1,196 @@ +'\" t +.\" Title: nvme-id-ctrl +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ID\-CTRL" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-id-ctrl \- Send NVMe Identify Controller, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme id\-ctrl\fR [\-v | \-\-vendor\-specific] [\-b | \-\-raw\-binary] + [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an identify controller command and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the vendor specific and human readable options\&. +.RE +.PP +\-v, \-\-vendor\-specific +.RS 4 +In addition to parsing known fields, this option will dump the vendor specific region of the structure in hex with ascii interpretation\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +This option will parse and format many of the bit fields into human\-readable formats\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program interpret the returned buffer and display the known fields in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ctrl /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +In addition to showing the known fields, has the program to display the vendor unique field: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ctrl /dev/nvme0 \-\-vendor\-specific +# nvme id\-ctrl /dev/nvme0 \-v +.fi +.if n \{\ +.RE +.\} +.sp +The above will dump the +\fIvs\fR +buffer in hex since it doesn\(cqt know how to interpret it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Have the program return the raw structure in binary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ctrl /dev/nvme0 \-\-raw\-binary > id_ctrl\&.raw +# nvme id\-ctrl /dev/nvme0 \-b > id_ctrl\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Alternatively you may want to send the data to another program that can parse the raw buffer\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ctrl /dev/nvme0 \-\-raw\-binary | nvme_parse_id_ctrl +.fi +.if n \{\ +.RE +.\} +.sp +The parse program in the above example can be a program that shows the structure in a way you like\&. The following program is such an example that will parse it and can accept the output through a pipe, +\*(Aq|\*(Aq, as shown in the above example, or you can +\*(Aqcat\*(Aq +a saved output buffer to it\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +/* File: nvme_parse_id_ctrl\&.c */ + +#include +#include +#include + +int main(int argc, char **argv) +{ + unsigned char buf[sizeof(struct nvme_id_ctrl)]; + struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf; + + if (read(STDIN_FILENO, buf, sizeof(buf))) + return 1; + + printf("vid : %#x\en", ctrl\->vid); + printf("ssvid : %#x\en", ctrl\->ssvid); + return 0; +} +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-id-ctrl.html b/Documentation/nvme-id-ctrl.html new file mode 100644 index 0000000..294c5b0 --- /dev/null +++ b/Documentation/nvme-id-ctrl.html @@ -0,0 +1,913 @@ + + + + + +nvme-id-ctrl(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme id-ctrl <device> [-v | --vendor-specific] [-b | --raw-binary]
+                        [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an identify controller command and +provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. +

+
+
+-v +
+
+--vendor-specific +
+
+

+ In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. +

+
+
+-H +
+
+--human-readable +
+
+

+ This option will parse and format many of the bit fields + into human-readable formats. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program interpret the returned buffer and display the known +fields in a human readable format: +

    +
    +
    +
    # nvme id-ctrl /dev/nvme0
    +
    +
  • +
  • +

    +In addition to showing the known fields, has the program to display +the vendor unique field: +

    +
    +
    +
    # nvme id-ctrl /dev/nvme0 --vendor-specific
    +# nvme id-ctrl /dev/nvme0 -v
    +
    +

    The above will dump the vs buffer in hex since it doesn’t know how to +interpret it.

    +
  • +
  • +

    +Have the program return the raw structure in binary: +

    +
    +
    +
    # nvme id-ctrl /dev/nvme0 --raw-binary > id_ctrl.raw
    +# nvme id-ctrl /dev/nvme0 -b > id_ctrl.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
  • +

    +Alternatively you may want to send the data to another program that +can parse the raw buffer. +

    +
    +
    +
    # nvme id-ctrl /dev/nvme0 --raw-binary | nvme_parse_id_ctrl
    +
    +

    The parse program in the above example can be a program that shows the +structure in a way you like. The following program is such an example +that will parse it and can accept the output through a pipe, '|', +as shown in the above example, or you can 'cat' a saved output buffer to it.

    +
  • +
+
+
+
/* File: nvme_parse_id_ctrl.c */
+
+#include <linux/nvme.h>
+#include <stdio.h>
+#include <unistd.h>
+
+int main(int argc, char **argv)
+{
+        unsigned char buf[sizeof(struct nvme_id_ctrl)];
+        struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf;
+
+        if (read(STDIN_FILENO, buf, sizeof(buf)))
+                return 1;
+
+        printf("vid   : %#x\n", ctrl->vid);
+        printf("ssvid : %#x\n", ctrl->ssvid);
+        return 0;
+}
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-id-ctrl.txt b/Documentation/nvme-id-ctrl.txt new file mode 100644 index 0000000..b9fcffc --- /dev/null +++ b/Documentation/nvme-id-ctrl.txt @@ -0,0 +1,113 @@ +nvme-id-ctrl(1) +=============== + +NAME +---- +nvme-id-ctrl - Send NVMe Identify Controller, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme id-ctrl' [-v | --vendor-specific] [-b | --raw-binary] + [-o | --output-format=] + +DESCRIPTION +----------- +For the NVMe device given, sends an identify controller command and +provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. + +-v:: +--vendor-specific:: + In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. + +-H:: +--human-readable:: + This option will parse and format many of the bit fields + into human-readable formats. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Has the program interpret the returned buffer and display the known +fields in a human readable format: ++ +------------ +# nvme id-ctrl /dev/nvme0 +------------ ++ + +* In addition to showing the known fields, has the program to display +the vendor unique field: ++ +------------ +# nvme id-ctrl /dev/nvme0 --vendor-specific +# nvme id-ctrl /dev/nvme0 -v +------------ ++ +The above will dump the 'vs' buffer in hex since it doesn't know how to +interpret it. + +* Have the program return the raw structure in binary: ++ +------------ +# nvme id-ctrl /dev/nvme0 --raw-binary > id_ctrl.raw +# nvme id-ctrl /dev/nvme0 -b > id_ctrl.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +* Alternatively you may want to send the data to another program that +can parse the raw buffer. ++ +------------ +# nvme id-ctrl /dev/nvme0 --raw-binary | nvme_parse_id_ctrl +------------ ++ +The parse program in the above example can be a program that shows the +structure in a way you like. The following program is such an example +that will parse it and can accept the output through a pipe, `'|'`, +as shown in the above example, or you can `'cat'` a saved output buffer to it. +------------ +/* File: nvme_parse_id_ctrl.c */ + +#include +#include +#include + +int main(int argc, char **argv) +{ + unsigned char buf[sizeof(struct nvme_id_ctrl)]; + struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf; + + if (read(STDIN_FILENO, buf, sizeof(buf))) + return 1; + + printf("vid : %#x\n", ctrl->vid); + printf("ssvid : %#x\n", ctrl->ssvid); + return 0; +} +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-id-ns.1 b/Documentation/nvme-id-ns.1 new file mode 100644 index 0000000..55094c9 --- /dev/null +++ b/Documentation/nvme-id-ns.1 @@ -0,0 +1,229 @@ +'\" t +.\" Title: nvme-id-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ID\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-id-ns \- Send NVMe Identify Namespace, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme id\-ns\fR [\-v | \-\-vendor\-specific] [\-b | \-\-raw\-binary] + [\-\-namespace\-id= | \-n ] [\-f | \-\-force] + [\-\-human\-readable | \-H] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an identify namespace command and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. If the character device is given, the \*(Aq\-\-namespace\-id\*(Aq option is mandatory, otherwise it will use the ns\-id of the namespace for the block device you opened\&. For block devices, the ns\-id used can be overridden with the same option\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the identify namespace structure for the given nsid\&. This is required for the character devices, or overrides the block nsid if given\&. +.RE +.PP +\-f, \-\-force +.RS 4 +Request controller return the identify namespace structure even if the namespace is not attached to the controller\&. This is valid only for controllers at or newer than revision 1\&.2\&. Controllers at revision lower than this may interpret the command incorrectly\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the vendor specific and human readable options\&. +.RE +.PP +\-v, \-\-vendor\-specific +.RS 4 +In addition to parsing known fields, this option will dump the vendor specific region of the structure in hex with ascii interpretation\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +This option will parse and format many of the bit fields into human\-readable formats\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program interpret the returned buffer and display the known fields in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ns /dev/nvme0n1 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If using the character device or overriding namespace id: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ns /dev/nvme0 \-n 1 +# nvme id\-ns /dev/nvme0n1 \-n 1 +# nvme id\-ns /dev/nvme0 \-\-namespace\-id=1 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +In addition to showing the known fields, have the program to display the vendor unique field: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ns /dev/nvme0n1 \-\-vendor\-specific +# nvme id\-ns /dev/nvme0n1 \-v +.fi +.if n \{\ +.RE +.\} +.sp +The above will dump the \*(Aqvs\*(Aq buffer in hex since it doesn\(cqt know how to interpret it\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Have the program return the raw structure in binary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ns /dev/nvme0n1 \-\-raw\-binary > id_ns\&.raw +# nvme id\-ns /dev/nvme0n1 \-b > id_ns\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Alternatively you may want to send the data to another program that can parse the raw buffer\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-ns /dev/nvme0n1 \-\-raw\-binary | nvme_parse_id_ns +.fi +.if n \{\ +.RE +.\} +.sp +The parse program in the above example can be a program that shows the structure in a way you like\&. The following program is such an example that will parse it and can accept the output through a pipe, +\*(Aq|\*(Aq, as shown in the above example, or you can +\*(Aqcat\*(Aq +a saved output buffer to it\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +/* File: nvme_parse_id_ns\&.c */ + +#include +#include +#include + +int main(int argc, char **argv) +{ + unsigned char buf[sizeof(struct nvme_id_ns)]; + struct nvme_id_ns *ns = (struct nvme_id_ns *)buf; + + if (read(STDIN_FILENO, buf, sizeof(buf))) + return 1; + + printf("nsze : %#llx\en", ns\->nsze); + printf("ncap : %#llx\en", ns\->ncap); + return 0; +} +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-id-ns.html b/Documentation/nvme-id-ns.html new file mode 100644 index 0000000..283fc33 --- /dev/null +++ b/Documentation/nvme-id-ns.html @@ -0,0 +1,962 @@ + + + + + + +nvme-id-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme id-ns <device> [-v | --vendor-specific] [-b | --raw-binary]
+                    [--namespace-id=<nsid> | -n <nsid>] [-f | --force]
+                    [--human-readable | -H]
+                    [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an identify namespace command and +provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, the '--namespace-id' option is +mandatory, otherwise it will use the ns-id of the namespace for the block +device you opened. For block devices, the ns-id used can be overridden +with the same option.

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the identify namespace structure for the given nsid. This + is required for the character devices, or overrides the block nsid + if given. +

+
+
+-f +
+
+--force +
+
+

+ Request controller return the identify namespace structure even + if the namespace is not attached to the controller. This is valid + only for controllers at or newer than revision 1.2. Controllers + at revision lower than this may interpret the command incorrectly. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. +

+
+
+-v +
+
+--vendor-specific +
+
+

+ In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. +

+
+
+-H +
+
+--human-readable +
+
+

+ This option will parse and format many of the bit fields + into human-readable formats. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program interpret the returned buffer and display the known +fields in a human readable format: +

    +
    +
    +
    # nvme id-ns /dev/nvme0n1
    +
    +
  • +
  • +

    +If using the character device or overriding namespace id: +

    +
    +
    +
    # nvme id-ns /dev/nvme0 -n 1
    +# nvme id-ns /dev/nvme0n1 -n 1
    +# nvme id-ns /dev/nvme0 --namespace-id=1
    +
    +
  • +
  • +

    +In addition to showing the known fields, have the program to display +the vendor unique field: +

    +
    +
    +
    # nvme id-ns /dev/nvme0n1 --vendor-specific
    +# nvme id-ns /dev/nvme0n1 -v
    +
    +

    The above will dump the 'vs' buffer in hex since it doesn’t know how to +interpret it.

    +
  • +
  • +

    +Have the program return the raw structure in binary: +

    +
    +
    +
    # nvme id-ns /dev/nvme0n1 --raw-binary > id_ns.raw
    +# nvme id-ns /dev/nvme0n1 -b > id_ns.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
  • +

    +Alternatively you may want to send the data to another program that +can parse the raw buffer. +

    +
    +
    +
    # nvme id-ns /dev/nvme0n1 --raw-binary | nvme_parse_id_ns
    +
    +

    The parse program in the above example can be a program that shows the +structure in a way you like. The following program is such an example +that will parse it and can accept the output through a pipe, '|', +as shown in the above example, or you can 'cat' a saved output buffer +to it.

    +
  • +
+
+
+
/* File: nvme_parse_id_ns.c */
+
+#include <linux/nvme.h>
+#include <stdio.h>
+#include <unistd.h>
+
+int main(int argc, char **argv)
+{
+        unsigned char buf[sizeof(struct nvme_id_ns)];
+        struct nvme_id_ns *ns = (struct nvme_id_ns *)buf;
+
+        if (read(STDIN_FILENO, buf, sizeof(buf)))
+                return 1;
+
+        printf("nsze : %#llx\n", ns->nsze);
+        printf("ncap : %#llx\n", ns->ncap);
+        return 0;
+}
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-id-ns.txt b/Documentation/nvme-id-ns.txt new file mode 100644 index 0000000..4b3c258 --- /dev/null +++ b/Documentation/nvme-id-ns.txt @@ -0,0 +1,144 @@ +nvme-id-ns(1) +============= + +NAME +---- +nvme-id-ns - Send NVMe Identify Namespace, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme id-ns' [-v | --vendor-specific] [-b | --raw-binary] + [--namespace-id= | -n ] [-f | --force] + [--human-readable | -H] + [--output-format= | -o ] + +DESCRIPTION +----------- +For the NVMe device given, sends an identify namespace command and +provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, the `'--namespace-id'` option is +mandatory, otherwise it will use the ns-id of the namespace for the block +device you opened. For block devices, the ns-id used can be overridden +with the same option. + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the identify namespace structure for the given nsid. This + is required for the character devices, or overrides the block nsid + if given. + +-f:: +--force:: + Request controller return the identify namespace structure even + if the namespace is not attached to the controller. This is valid + only for controllers at or newer than revision 1.2. Controllers + at revision lower than this may interpret the command incorrectly. + +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. + +-v:: +--vendor-specific:: + In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. + +-H:: +--human-readable:: + This option will parse and format many of the bit fields + into human-readable formats. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + + + +EXAMPLES +-------- +* Has the program interpret the returned buffer and display the known +fields in a human readable format: ++ +------------ +# nvme id-ns /dev/nvme0n1 +------------ ++ + +* If using the character device or overriding namespace id: ++ +------------ +# nvme id-ns /dev/nvme0 -n 1 +# nvme id-ns /dev/nvme0n1 -n 1 +# nvme id-ns /dev/nvme0 --namespace-id=1 +------------ ++ + +* In addition to showing the known fields, have the program to display +the vendor unique field: ++ +------------ +# nvme id-ns /dev/nvme0n1 --vendor-specific +# nvme id-ns /dev/nvme0n1 -v +------------ ++ +The above will dump the \'vs' buffer in hex since it doesn't know how to +interpret it. + +* Have the program return the raw structure in binary: ++ +------------ +# nvme id-ns /dev/nvme0n1 --raw-binary > id_ns.raw +# nvme id-ns /dev/nvme0n1 -b > id_ns.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +* Alternatively you may want to send the data to another program that +can parse the raw buffer. ++ +------------ +# nvme id-ns /dev/nvme0n1 --raw-binary | nvme_parse_id_ns +------------ ++ +The parse program in the above example can be a program that shows the +structure in a way you like. The following program is such an example +that will parse it and can accept the output through a pipe, `'|'`, +as shown in the above example, or you can `'cat'` a saved output buffer +to it. +------------ +/* File: nvme_parse_id_ns.c */ + +#include +#include +#include + +int main(int argc, char **argv) +{ + unsigned char buf[sizeof(struct nvme_id_ns)]; + struct nvme_id_ns *ns = (struct nvme_id_ns *)buf; + + if (read(STDIN_FILENO, buf, sizeof(buf))) + return 1; + + printf("nsze : %#llx\n", ns->nsze); + printf("ncap : %#llx\n", ns->ncap); + return 0; +} +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-id-nvmset.1 b/Documentation/nvme-id-nvmset.1 new file mode 100644 index 0000000..bcec988 --- /dev/null +++ b/Documentation/nvme-id-nvmset.1 @@ -0,0 +1,142 @@ +'\" t +.\" Title: nvme-id-nvmset +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ID\-NVMSET" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-id-nvmset \- Send NVMe Identify NVM Set List, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme id\-nvmset\fR [\-i | \-\-nvmset_id= ] + [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an identify NVM set list command and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.SH "OPTIONS" +.PP +\-i , \-\-nvmset_id= +.RS 4 +This field specifies the identifier of the NVM Set\&. If given, NVM set identifier whose entry is to be in result data will be greater than or equal to this value\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program interpret the returned buffer and display the known fields in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-nvmset /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Have the program return the raw structure in binary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-nvmset /dev/nvme0 \-\-output\-format=binary > id_nvmset\&.raw +# nvme id\-nvmset /dev/nvme0 \-o binary > id_nvmset\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Alternatively you may want to send the data to another program that can parse the raw buffer\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme id\-nvmset /dev/nvme0 \-o binary | nvme_parse_id_nvmset +.fi +.if n \{\ +.RE +.\} +.sp +The parse program in the above example can be a program that shows the structure in a way you like\&. The following program is such an example that will parse it and can accept the output through a pipe, +\*(Aq|\*(Aq, as shown in the above example, or you can +\*(Aqcat\*(Aq +a saved output buffer to it\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +NVME +.fi +.if n \{\ +.RE +.\} +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-id-nvmset.html b/Documentation/nvme-id-nvmset.html new file mode 100644 index 0000000..f04e1cd --- /dev/null +++ b/Documentation/nvme-id-nvmset.html @@ -0,0 +1,858 @@ + + + + + + +nvme-id-nvmset(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme id-nvmset <device> [-i <id> | --nvmset_id=<id> ]
+                        [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an identify NVM set list command and +provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+
+
+
+

OPTIONS

+
+
+
+-i <id> +
+
+--nvmset_id=<id> +
+
+

+ This field specifies the identifier of the NVM Set. If given, NVM set + identifier whose entry is to be in result data will be greater than or + equal to this value. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program interpret the returned buffer and display the known +fields in a human readable format: +

    +
    +
    +
    # nvme id-nvmset /dev/nvme0
    +
    +
  • +
  • +

    +Have the program return the raw structure in binary: +

    +
    +
    +
    # nvme id-nvmset /dev/nvme0 --output-format=binary > id_nvmset.raw
    +# nvme id-nvmset /dev/nvme0 -o binary > id_nvmset.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
  • +

    +Alternatively you may want to send the data to another program that +can parse the raw buffer. +

    +
    +
    +
    # nvme id-nvmset /dev/nvme0 -o binary | nvme_parse_id_nvmset
    +
    +

    The parse program in the above example can be a program that shows the +structure in a way you like. The following program is such an example +that will parse it and can accept the output through a pipe, '|', +as shown in the above example, or you can 'cat' a saved output buffer to it.

    +
  • +
+
+
+
NVME
+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-id-nvmset.txt b/Documentation/nvme-id-nvmset.txt new file mode 100644 index 0000000..c331410 --- /dev/null +++ b/Documentation/nvme-id-nvmset.txt @@ -0,0 +1,73 @@ +nvme-id-nvmset(1) +================= + +NAME +---- +nvme-id-nvmset - Send NVMe Identify NVM Set List, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme id-nvmset' [-i | --nvmset_id= ] + [-o | --output-format=] + +DESCRIPTION +----------- +For the NVMe device given, sends an identify NVM set list command and +provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +OPTIONS +------- +-i :: +--nvmset_id=:: + This field specifies the identifier of the NVM Set. If given, NVM set + identifier whose entry is to be in result data will be greater than or + equal to this value. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Has the program interpret the returned buffer and display the known +fields in a human readable format: ++ +------------ +# nvme id-nvmset /dev/nvme0 +------------ ++ + +* Have the program return the raw structure in binary: ++ +------------ +# nvme id-nvmset /dev/nvme0 --output-format=binary > id_nvmset.raw +# nvme id-nvmset /dev/nvme0 -o binary > id_nvmset.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +* Alternatively you may want to send the data to another program that +can parse the raw buffer. ++ +------------ +# nvme id-nvmset /dev/nvme0 -o binary | nvme_parse_id_nvmset +------------ ++ +The parse program in the above example can be a program that shows the +structure in a way you like. The following program is such an example +that will parse it and can accept the output through a pipe, `'|'`, +as shown in the above example, or you can `'cat'` a saved output buffer to it. +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-intel-id-ctrl.1 b/Documentation/nvme-intel-id-ctrl.1 new file mode 100644 index 0000000..9e90231 --- /dev/null +++ b/Documentation/nvme-intel-id-ctrl.1 @@ -0,0 +1,95 @@ +'\" t +.\" Title: nvme-intel-id-ctrl +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-INTEL\-ID\-CTR" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-intel-id-ctrl \- Send NVMe Identify Controller, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme intel id\-ctrl\fR [\-v | \-\-vendor\-specific] [\-b | \-\-raw\-binary] + [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an identify controller command and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.sp +If having the program decode the output for readability, this version will decode Intel vendor unique portions of the structure\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the vendor specific and human readable options\&. +.RE +.PP +\-v, \-\-vendor\-specific +.RS 4 +In addition to parsing known fields, this option will dump the vendor specific region of the structure in hex with ascii interpretation\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +This option will parse and format many of the bit fields into human\-readable formats\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program interpret the returned buffer and display the known fields in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel id\-ctrl /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-intel-id-ctrl.html b/Documentation/nvme-intel-id-ctrl.html new file mode 100644 index 0000000..8e79675 --- /dev/null +++ b/Documentation/nvme-intel-id-ctrl.html @@ -0,0 +1,856 @@ + + + + + +nvme-intel-id-ctrl(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme intel id-ctrl <device> [-v | --vendor-specific] [-b | --raw-binary]
+                        [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an identify controller command and +provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+

If having the program decode the output for readability, this version +will decode Intel vendor unique portions of the structure.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. +

+
+
+-v +
+
+--vendor-specific +
+
+

+ In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. +

+
+
+-H +
+
+--human-readable +
+
+

+ This option will parse and format many of the bit fields + into human-readable formats. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program interpret the returned buffer and display the known +fields in a human readable format: +

    +
    +
    +
    # nvme intel id-ctrl /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-intel-id-ctrl.txt b/Documentation/nvme-intel-id-ctrl.txt new file mode 100644 index 0000000..1a6369c --- /dev/null +++ b/Documentation/nvme-intel-id-ctrl.txt @@ -0,0 +1,63 @@ +nvme-intel-id-ctrl(1) +===================== + +NAME +---- +nvme-intel-id-ctrl - Send NVMe Identify Controller, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme intel id-ctrl' [-v | --vendor-specific] [-b | --raw-binary] + [-o | --output-format=] + +DESCRIPTION +----------- +For the NVMe device given, sends an identify controller command and +provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +If having the program decode the output for readability, this version +will decode Intel vendor unique portions of the structure. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. + +-v:: +--vendor-specific:: + In addition to parsing known fields, this option will dump + the vendor specific region of the structure in hex with ascii + interpretation. + +-H:: +--human-readable:: + This option will parse and format many of the bit fields + into human-readable formats. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Has the program interpret the returned buffer and display the known +fields in a human readable format: ++ +------------ +# nvme intel id-ctrl /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-intel-internal-log.1 b/Documentation/nvme-intel-internal-log.1 new file mode 100644 index 0000000..fdefc66 --- /dev/null +++ b/Documentation/nvme-intel-internal-log.1 @@ -0,0 +1,120 @@ +'\" t +.\" Title: nvme-intel-internal-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-INTEL\-INTERNA" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-intel-internal-log \- Retrieve Intel device\*(Aqs internal log and save to file\&. +.SH "SYNOPSIS" +.sp +.nf +\*(Aqnvme intel internal\-log \*(Aq [\-\-log=, \-l ] + [\-\-region=, r ] + [\-\-nlognum=, m ] + [\-\-namespace\-id=, \-n ] + [\-\-output\-file=, \-o ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the Intel vendor unique device log request and saves the result to a file\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. If using the character device, the namespace id parameter is mandatory\&. +.sp +This will only work on Intel devices supporting this feature which includes (but not limited to) all the Intel DC P3xxx family of controllers\&. Results for any other device are undefined\&. +.SH "OPTIONS" +.PP +\-l , \-\-log= +.RS 4 +Log type: 0, 1, or 2 for nlog, event log, and assert log, respectively\&. +.RE +.PP +\-n , \-\-namespace\-id= +.RS 4 +Namespace to use\&. +.RE +.PP +\-o , \-\-output\-file= +.RS 4 +Output file; defaults to device name provided +.RE +.PP +\-r , \-\-region= +.RS 4 +Select which core region to retrieve the log from\&. \-1 for all available, if supported by the device\&. +.RE +.PP +\-m , \-\-nlognum= +.RS 4 +When used with +\fInlog\fR, this specifies which nlog to read\&. \-1 for all, if supported by the device\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Gets the nlog from the device and saves to default file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel internal\-log /dev/nvme0 \-\-namespace\-id=1 \-\-log=0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Gets the event log from the device and saves to defined file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel internal\-log /dev/nvme0 \-\-namespace\-id=1 \-\-log=1 \-\-output\-file=MyAwesomeEventLog +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-intel-internal-log.html b/Documentation/nvme-intel-internal-log.html new file mode 100644 index 0000000..94397c1 --- /dev/null +++ b/Documentation/nvme-intel-internal-log.html @@ -0,0 +1,850 @@ + + + + + +nvme-intel-internal-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
'nvme intel internal-log ' <device> [--log=<NUM>, -l <NUM>]
+                [--namespace-id=<NUM>, -n <NUM>]
+                [--output-file=<FILE>, -o <FILE>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the Intel vendor unique device log +request and saves the result to a file.

+

The <device> parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1). If using the character device, the namespace id parameter +is mandatory.

+

This will only work on Intel devices supporting this feature which +includes (but not limited to) all the Intel DC P3xxx family of +controllers. Results for any other device are undefined.

+
+
+
+

OPTIONS

+
+
+
+-l <NUM> +
+
+--log=<NUM> +
+
+

+ Log type: 0, 1, or 2 for nlog, event log, and assert log, + respectively. +

+
+
+-n <NUM> +
+
+--namespace-id=<NUM> +
+
+

+ Namespace to use. +

+
+
+-o <FILE> +
+
+--output-file=<FILE> +
+
+

+ Output file; defaults to device name provided +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Gets the nlog from the device and saves to default file: +

    +
    +
    +
    # nvme intel internal-log /dev/nvme0 --namespace-id=1 --log=0
    +
    +
  • +
  • +

    +Gets the event log from the device and saves to defined file: +

    +
    +
    +
    # nvme intel internal-log /dev/nvme0 --namespace-id=1 --log=1 --output-file=MyAwesomeEventLog
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-intel-internal-log.txt b/Documentation/nvme-intel-internal-log.txt new file mode 100644 index 0000000..2f00313 --- /dev/null +++ b/Documentation/nvme-intel-internal-log.txt @@ -0,0 +1,74 @@ +nvme-intel-internal-log(1) +========================== + +NAME +---- +nvme-intel-internal-log - Retrieve Intel device's internal log and save to file. + +SYNOPSIS +-------- +[verse] +'nvme intel internal-log ' [--log=, -l ] + [--region=, r ] + [--nlognum=, m ] + [--namespace-id=, -n ] + [--output-file=, -o ] + +DESCRIPTION +----------- +For the NVMe device given, sends the Intel vendor unique device log +request and saves the result to a file. + +The parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1). If using the character device, the namespace id parameter +is mandatory. + +This will only work on Intel devices supporting this feature which +includes (but not limited to) all the Intel DC P3xxx family of +controllers. Results for any other device are undefined. + +OPTIONS +------- +-l :: +--log=:: + Log type: 0, 1, or 2 for nlog, event log, and assert log, + respectively. + +-n :: +--namespace-id=:: + Namespace to use. + +-o :: +--output-file=:: + Output file; defaults to device name provided + +-r :: +--region=:: + Select which core region to retrieve the log from. -1 for all + available, if supported by the device. + +-m :: +--nlognum=:: + When used with 'nlog', this specifies which nlog to read. -1 + for all, if supported by the device. + + +EXAMPLES +-------- +* Gets the nlog from the device and saves to default file: ++ +------------ +# nvme intel internal-log /dev/nvme0 --namespace-id=1 --log=0 +------------ ++ + +* Gets the event log from the device and saves to defined file: ++ +------------ +# nvme intel internal-log /dev/nvme0 --namespace-id=1 --log=1 --output-file=MyAwesomeEventLog +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-intel-lat-stats.1 b/Documentation/nvme-intel-lat-stats.1 new file mode 100644 index 0000000..a936e9a --- /dev/null +++ b/Documentation/nvme-intel-lat-stats.1 @@ -0,0 +1,100 @@ +'\" t +.\" Title: nvme-intel-lat-stats +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-INTEL\-LAT\-ST" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-intel-lat-stats \- Send NVMe Identify Controller, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme intel lat\-stats\fR [\-\-write | \-w] [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, retrieves intel vendor specific latency statistics and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the vendor specific and human readable options\&. +.RE +.PP +\-w, \-\-write +.RS 4 +Get write statistics\&. Read statistics are returned by default\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the read statistics +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel lat\-stats /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the write statistics +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel lat\-stats /dev/nvme0 \-w +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-intel-lat-stats.html b/Documentation/nvme-intel-lat-stats.html new file mode 100644 index 0000000..85597a0 --- /dev/null +++ b/Documentation/nvme-intel-lat-stats.html @@ -0,0 +1,835 @@ + + + + + +nvme-intel-lat-stats(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme intel lat-stats <device> [--write | -w] [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, retrieves intel vendor specific latency statistics and +provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. +

+
+
+-w +
+
+--write +
+
+

+ Get write statistics. Read statistics are returned by default. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Get the read statistics +

    +
    +
    +
    # nvme intel lat-stats /dev/nvme0
    +
    +
  • +
  • +

    +Get the write statistics +

    +
    +
    +
    # nvme intel lat-stats /dev/nvme0 -w
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-intel-lat-stats.txt b/Documentation/nvme-intel-lat-stats.txt new file mode 100644 index 0000000..767cf92 --- /dev/null +++ b/Documentation/nvme-intel-lat-stats.txt @@ -0,0 +1,53 @@ +nvme-intel-lat-stats(1) +======================= + +NAME +---- +nvme-intel-lat-stats - Send NVMe Identify Controller, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme intel lat-stats' [--write | -w] [--raw-binary | -b] + +DESCRIPTION +----------- +For the NVMe device given, retrieves intel vendor specific latency statistics and +provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. + +-w:: +--write:: + Get write statistics. Read statistics are returned by default. + +EXAMPLES +-------- +* Get the read statistics ++ +------------ +# nvme intel lat-stats /dev/nvme0 +------------ ++ + +* Get the write statistics ++ +------------ +# nvme intel lat-stats /dev/nvme0 -w +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-intel-market-name.1 b/Documentation/nvme-intel-market-name.1 new file mode 100644 index 0000000..a19a844 --- /dev/null +++ b/Documentation/nvme-intel-market-name.1 @@ -0,0 +1,74 @@ +'\" t +.\" Title: nvme-intel-market-name +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-INTEL\-MARKET\" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-intel-market-name \- Send NVMe Identify Controller, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme intel market\-name\fR [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, retrieves intel vendor specific marketing name log page and provides the result and returned structure\&. The output is simply the marketing name used to identify what kind of device it is\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the vendor specific and human readable options\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the marketing name +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel market\-name /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-intel-market-name.html b/Documentation/nvme-intel-market-name.html new file mode 100644 index 0000000..79d9796 --- /dev/null +++ b/Documentation/nvme-intel-market-name.html @@ -0,0 +1,816 @@ + + + + + +nvme-intel-market-name(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme intel market-name <device> [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, retrieves intel vendor specific marketing name +log page and provides the result and returned structure. The output is +simply the marketing name used to identify what kind of device it is.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Get the marketing name +

    +
    +
    +
    # nvme intel market-name /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-intel-market-name.txt b/Documentation/nvme-intel-market-name.txt new file mode 100644 index 0000000..0b4b96a --- /dev/null +++ b/Documentation/nvme-intel-market-name.txt @@ -0,0 +1,43 @@ +nvme-intel-market-name(1) +========================= + +NAME +---- +nvme-intel-market-name - Send NVMe Identify Controller, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme intel market-name' [--raw-binary | -b] + +DESCRIPTION +----------- +For the NVMe device given, retrieves intel vendor specific marketing name +log page and provides the result and returned structure. The output is +simply the marketing name used to identify what kind of device it is. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. + +EXAMPLES +-------- +* Get the marketing name ++ +------------ +# nvme intel market-name /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-intel-smart-log-add.1 b/Documentation/nvme-intel-smart-log-add.1 new file mode 100644 index 0000000..94eac80 --- /dev/null +++ b/Documentation/nvme-intel-smart-log-add.1 @@ -0,0 +1,109 @@ +'\" t +.\" Title: nvme-intel-smart-log-add +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-INTEL\-SMART\-" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-intel-smart-log-add \- Send NVMe Intel Additional SMART log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme intel smart\-log\-add\fR [\-\-namespace\-id= | \-n ] + [\-\-raw\-binary | \-b] + [\-\-json | \-j] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Intel Additional SMART log page from the device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned smart log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the Additional SMART log for the given nsid\&. This is optional and its success may depend on the device\(cqs capabilities to provide this log on a per\-namespace basis (see the NVMe Identify Controller for this capability)\&. The default nsid to use is 0xffffffff for the device global SMART log\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw Intel Additional SMART log buffer to stdout\&. +.RE +.PP +\-j, \-\-json +.RS 4 +Dump output in json format\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the Intel Additional SMART log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel smart\-log\-add /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the raw Intel Additional SMART log to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel smart\-log\-add /dev/nvme0 \-\-raw\-binary > smart_log\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-intel-smart-log-add.html b/Documentation/nvme-intel-smart-log-add.html new file mode 100644 index 0000000..a7b7585 --- /dev/null +++ b/Documentation/nvme-intel-smart-log-add.html @@ -0,0 +1,857 @@ + + + + + + +nvme-intel-smart-log-add(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme intel smart-log-add <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--raw-binary | -b]
+                        [--json | -j]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Intel Additional SMART log page from the device and +provides the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned smart log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the Additional SMART log for the given nsid. This is + optional and its success may depend on the device’s capabilities + to provide this log on a per-namespace basis (see the NVMe + Identify Controller for this capability). The default nsid to + use is 0xffffffff for the device global SMART log. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw Intel Additional SMART log buffer to stdout. +

+
+
+-j +
+
+--json +
+
+

+ Dump output in json format. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the Intel Additional SMART log page in a human readable format: +

    +
    +
    +
    # nvme intel smart-log-add /dev/nvme0
    +
    +
  • +
  • +

    +Print the raw Intel Additional SMART log to a file: +

    +
    +
    +
    # nvme intel smart-log-add /dev/nvme0 --raw-binary > smart_log.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-intel-smart-log-add.txt b/Documentation/nvme-intel-smart-log-add.txt new file mode 100644 index 0000000..7cfe794 --- /dev/null +++ b/Documentation/nvme-intel-smart-log-add.txt @@ -0,0 +1,65 @@ +nvme-intel-smart-log-add(1) +=========================== + +NAME +---- +nvme-intel-smart-log-add - Send NVMe Intel Additional SMART log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme intel smart-log-add' [--namespace-id= | -n ] + [--raw-binary | -b] + [--json | -j] + +DESCRIPTION +----------- +Retrieves the NVMe Intel Additional SMART log page from the device and +provides the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned smart log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the Additional SMART log for the given nsid. This is + optional and its success may depend on the device's capabilities + to provide this log on a per-namespace basis (see the NVMe + Identify Controller for this capability). The default nsid to + use is 0xffffffff for the device global SMART log. + +-b:: +--raw-binary:: + Print the raw Intel Additional SMART log buffer to stdout. + +-j:: +--json:: + Dump output in json format. + +EXAMPLES +-------- +* Print the Intel Additional SMART log page in a human readable format: ++ +------------ +# nvme intel smart-log-add /dev/nvme0 +------------ ++ + +* Print the raw Intel Additional SMART log to a file: ++ +------------ +# nvme intel smart-log-add /dev/nvme0 --raw-binary > smart_log.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-intel-temp-stats.1 b/Documentation/nvme-intel-temp-stats.1 new file mode 100644 index 0000000..aaab8fa --- /dev/null +++ b/Documentation/nvme-intel-temp-stats.1 @@ -0,0 +1,97 @@ +'\" t +.\" Title: nvme-intel-temp-stats +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-INTEL\-TEMP\-S" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-intel-temp-stats \- Send NVMe SMART log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme intel temp\-stats\fR [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Intel Additional SMART log page from the device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned smart log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw temperature stats log buffer to stdout\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the temperature stats log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel temp\-stats /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the raw SMART log to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme intel temp\-stats /dev/nvme0 \-\-raw\-binary > temp_stats_log\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-intel-temp-stats.html b/Documentation/nvme-intel-temp-stats.html new file mode 100644 index 0000000..2005af0 --- /dev/null +++ b/Documentation/nvme-intel-temp-stats.html @@ -0,0 +1,825 @@ + + + + + +nvme-intel-temp-stats(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme intel temp-stats <device> [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Intel Additional SMART log page from the device and +provides the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned smart log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw temperature stats log buffer to stdout. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the temperature stats log page in a human readable format: +

    +
    +
    +
    # nvme intel temp-stats /dev/nvme0
    +
    +
  • +
  • +

    +Print the raw SMART log to a file: +

    +
    +
    +
    # nvme intel temp-stats /dev/nvme0 --raw-binary > temp_stats_log.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-intel-temp-stats.txt b/Documentation/nvme-intel-temp-stats.txt new file mode 100644 index 0000000..656422f --- /dev/null +++ b/Documentation/nvme-intel-temp-stats.txt @@ -0,0 +1,51 @@ +nvme-intel-temp-stats(1) +======================== + +NAME +---- +nvme-intel-temp-stats - Send NVMe SMART log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme intel temp-stats' [--raw-binary | -b] + +DESCRIPTION +----------- +Retrieves the NVMe Intel Additional SMART log page from the device and +provides the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned smart log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-b:: +--raw-binary:: + Print the raw temperature stats log buffer to stdout. + +EXAMPLES +-------- +* Print the temperature stats log page in a human readable format: ++ +------------ +# nvme intel temp-stats /dev/nvme0 +------------ ++ + +* Print the raw SMART log to a file: ++ +------------ +# nvme intel temp-stats /dev/nvme0 --raw-binary > temp_stats_log.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-io-passthru.1 b/Documentation/nvme-io-passthru.1 new file mode 100644 index 0000000..0f6c9be --- /dev/null +++ b/Documentation/nvme-io-passthru.1 @@ -0,0 +1,133 @@ +'\" t +.\" Title: nvme-io-passthru +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-IO\-PASSTHRU" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-io-passthru \- Submit an arbitrary io command, return results +.SH "SYNOPSIS" +.sp +.nf +\fInvme\-io\-passthru\fR [\-\-opcode= | \-o ] + [\-\-flags= | \-f ] [\-rsvd= | \-R ] + [\-\-namespace\-id= | \-nsid ] + [\-\-cdw2=] [\-\-cdw3=] [\-\-cdw10=] + [\-\-cdw11=] [\-\-cdw12=] [\-\-cdw13=] + [\-\-cdw14=] [\-\-cdw15=] + [\-\-data\-len= | \-l ] + [\-\-metadata\-len= | \-m ] + [\-\-read | \-r ] [\-\-write | \-w] + [\-\-input\-file= | \-i ] + [\-\-timeout= | \-t ] + [\-\-show\-command | \-s] + [\-\-dry\-run | \-d] + [\-\-raw\-binary | \-b] + [\-\-prefill= | \-p ] +.fi +.SH "DESCRIPTION" +.sp +Submits an arbitrary NVMe IO command and returns the applicable results\&. This may be the simply the command\(cqs result and status, or may also include a buffer if the command returns one\&. This command does no interpretation of the opcodes or options\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned structure (if applicable) may be returned in one of several ways depending on the option flags; the structure may printed by the program as a hex dump, or may be returned as a raw buffer printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-o , \-\-opcode= +.RS 4 +The NVMe opcode to send to the device in the command +.RE +.PP +\-f , \-\-flags= +.RS 4 +The NVMe command flags to send to the device in the command +.RE +.PP +\-R , \-\-rsvd= +.RS 4 +The value for the reserved field in the command\&. +.RE +.PP +\-n , \-\-namespace\-id= +.RS 4 +The value for the ns\-id in the command\&. Defaults to +\fI0\fR\&. +.RE +.PP +\-\-cdw[2\-3,10\-15]= +.RS 4 +Specifies the command dword value for that specified entry in the command +.RE +.PP +\-r, \-\-read, \-w, \-\-write +.RS 4 +Used for the data\-direction for the command and required for commands sending/receiving data\&. Don\(cqt use both read and write at the same time\&. +.RE +.PP +\-i , \-\-input\-file= +.RS 4 +If the command is a data\-out (write) command, use this file to fill the buffer sent to the device\&. If no file is given, assumed to use STDIN\&. +.RE +.PP +\-l , \-\-data\-len= +.RS 4 +The data length for the buffer used for this command\&. +.RE +.PP +\-m , \-\-metadata\-len= +.RS 4 +The metadata length for the buffer used for this command\&. +.RE +.PP +\-s, \-\-show\-cmd +.RS 4 +Print out the command to be sent\&. +.RE +.PP +\-d, \-\-dry\-run +.RS 4 +Do not actually send the command\&. If want to use \-\-dry\-run option, \-\-show\-cmd option +\fImust\fR +be set\&. Otherwise \-\-dry\-run option will be +\fIignored\fR\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw returned buffer to stdout if the command returns data or a structure\&. +.RE +.PP +\-p , \-\-prefill +.RS 4 +Prefill the buffer with a predetermined byte value\&. Defaults to 0\&. This may be useful if the data you are writing is shorter than the required buffer, and you need to pad it with a known value\&. It may also be useful if you need to confirm if a device is overwriting a buffer on a data\-in command\&. +.RE +.SH "EXAMPLES" +.sp +nvme io\-passthru /dev/nvme0n1 \-\-opcode=2 \-\-namespace\-id=1 \-\-data\-len=4096 \-\-read \-\-cdw10=0 \-\-cdw11=0 \-\-cdw12=0x70000 \-\-raw\-binary +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-io-passthru.html b/Documentation/nvme-io-passthru.html new file mode 100644 index 0000000..96b9e1e --- /dev/null +++ b/Documentation/nvme-io-passthru.html @@ -0,0 +1,971 @@ + + + + + +nvme-io-passthru(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme-io-passthru <device> [--opcode=<opcode> | -o <opcode>]
+                [--flags=<flags> | -f <flags>] [-rsvd=<rsvd> | -R <rsvd>]
+                [--namespace-id=<nsid> | -nsid <nsid>]
+                [--cdw2=<cdw2>] [--cdw3=<cdw3>] [--cdw10=<cdw10>]
+                [--cdw11=<cdw11>] [--cdw12=<cdw12>] [--cdw13=<cdw13>]
+                [--cdw14=<cdw14>] [--cdw15=<cdw15>]
+                [--data-len=<data-len> | -l <data-len>]
+                [--metadata-len=<len> | -m <len>]
+                [--read | -r ] [--write | -w]
+                [--input-file=<file> | -i <file>]
+                [--timeout=<to> | -t <to>]
+                [--show-command | -s]
+                [--dry-run | -d]
+                [--raw-binary | -b]
+                [--prefill=<prefill> | -p <prefill>]
+
+
+
+
+
+

DESCRIPTION

+
+

Submits an arbitrary NVMe IO command and returns the applicable +results. This may be the simply the command’s result and status, or may +also include a buffer if the command returns one. This command does no +interpretation of the opcodes or options.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned structure (if applicable) may be returned in +one of several ways depending on the option flags; the structure may +printed by the program as a hex dump, or may be returned as a raw buffer +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-o <opcode> +
+
+--opcode=<opcode> +
+
+

+ The NVMe opcode to send to the device in the command +

+
+
+-f <flags> +
+
+--flags=<flags> +
+
+

+ The NVMe command flags to send to the device in the command +

+
+
+-R <rsvd> +
+
+--rsvd=<rsvd> +
+
+

+ The value for the reserved field in the command. +

+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ The value for the ns-id in the command. Defaults to 0. +

+
+
+--cdw[2-3,10-15]=<cdw> +
+
+

+ Specifies the command dword value for that specified entry in + the command +

+
+
+-r +
+
+--read +
+
+-w +
+
+--write +
+
+

+ Used for the data-direction for the command and required for + commands sending/receiving data. Don’t use both read and write + at the same time. +

+
+
+-i <file> +
+
+--input-file=<file> +
+
+

+ If the command is a data-out (write) command, use this file + to fill the buffer sent to the device. If no file is given, + assumed to use STDIN. +

+
+
+-l <data-len> +
+
+--data-len=<data-len> +
+
+

+ The data length for the buffer used for this command. +

+
+
+-m <data-len> +
+
+--metadata-len=<data-len> +
+
+

+ The metadata length for the buffer used for this command. +

+
+
+-s +
+
+--show-cmd +
+
+

+ Print out the command to be sent. +

+
+
+-d +
+
+--dry-run +
+
+

+ Do not actually send the command. If want to use --dry-run option, + --show-cmd option must be set. Otherwise --dry-run option will be + ignored. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw returned buffer to stdout if the command returns + data or a structure. +

+
+
+-p <prefill> +
+
+--prefill <prefill> +
+
+

+ Prefill the buffer with a predetermined byte value. Defaults to 0. + This may be useful if the data you are writing is shorter + than the required buffer, and you need to pad it with a known + value. It may also be useful if you need to confirm if a device + is overwriting a buffer on a data-in command. +

+
+
+
+
+
+

EXAMPLES

+
+

nvme io-passthru /dev/nvme0n1 --opcode=2 --namespace-id=1 --data-len=4096 --read --cdw10=0 --cdw11=0 --cdw12=0x70000 --raw-binary

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-io-passthru.txt b/Documentation/nvme-io-passthru.txt new file mode 100644 index 0000000..318e801 --- /dev/null +++ b/Documentation/nvme-io-passthru.txt @@ -0,0 +1,116 @@ +nvme-io-passthru(1) +=================== + +NAME +---- +nvme-io-passthru - Submit an arbitrary io command, return results + +SYNOPSIS +-------- +[verse] +'nvme-io-passthru' [--opcode= | -o ] + [--flags= | -f ] [-rsvd= | -R ] + [--namespace-id= | -nsid ] + [--cdw2=] [--cdw3=] [--cdw10=] + [--cdw11=] [--cdw12=] [--cdw13=] + [--cdw14=] [--cdw15=] + [--data-len= | -l ] + [--metadata-len= | -m ] + [--read | -r ] [--write | -w] + [--input-file= | -i ] + [--timeout= | -t ] + [--show-command | -s] + [--dry-run | -d] + [--raw-binary | -b] + [--prefill= | -p ] + +DESCRIPTION +----------- +Submits an arbitrary NVMe IO command and returns the applicable +results. This may be the simply the command's result and status, or may +also include a buffer if the command returns one. This command does no +interpretation of the opcodes or options. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned structure (if applicable) may be returned in +one of several ways depending on the option flags; the structure may +printed by the program as a hex dump, or may be returned as a raw buffer +printed to stdout for another program to parse. + +OPTIONS +------- +-o :: +--opcode=:: + The NVMe opcode to send to the device in the command + +-f :: +--flags=:: + The NVMe command flags to send to the device in the command + +-R :: +--rsvd=:: + The value for the reserved field in the command. + +-n :: +--namespace-id=:: + The value for the ns-id in the command. Defaults to '0'. + +--cdw[2-3,10-15]=:: + Specifies the command dword value for that specified entry in + the command + +-r:: +--read:: +-w:: +--write:: + Used for the data-direction for the command and required for + commands sending/receiving data. Don't use both read and write + at the same time. + +-i :: +--input-file=:: + If the command is a data-out (write) command, use this file + to fill the buffer sent to the device. If no file is given, + assumed to use STDIN. + +-l :: +--data-len=:: + The data length for the buffer used for this command. + +-m :: +--metadata-len=:: + The metadata length for the buffer used for this command. + +-s:: +--show-cmd:: + Print out the command to be sent. + +-d:: +--dry-run:: + Do not actually send the command. If want to use --dry-run option, + --show-cmd option _must_ be set. Otherwise --dry-run option will be + _ignored_. + +-b:: +--raw-binary:: + Print the raw returned buffer to stdout if the command returns + data or a structure. + +-p :: +--prefill :: + Prefill the buffer with a predetermined byte value. Defaults to 0. + This may be useful if the data you are writing is shorter + than the required buffer, and you need to pad it with a known + value. It may also be useful if you need to confirm if a device + is overwriting a buffer on a data-in command. + +EXAMPLES +-------- + +nvme io-passthru /dev/nvme0n1 --opcode=2 --namespace-id=1 --data-len=4096 --read --cdw10=0 --cdw11=0 --cdw12=0x70000 --raw-binary + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-list-ctrl.1 b/Documentation/nvme-list-ctrl.1 new file mode 100644 index 0000000..516f1e8 --- /dev/null +++ b/Documentation/nvme-list-ctrl.1 @@ -0,0 +1,70 @@ +'\" t +.\" Title: nvme-id-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ID\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-list-ctrl \- Send NVMe Identify List Controllers, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme list\-ctrl\fR [\-\-cntid= | \-c ] + [\-\-namespace\-id= | \-n ] +DESCRIPTION +.fi +.sp +.nf +For the NVMe device given, sends an identify command for controller list +and provides the result and returned structure\&. This uses either mode +12h or 13h depending on the requested namespace identifier\&. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +The starting controller in the list always begins with 0 unless the +`\*(Aq\-\-cntid\*(Aq` option is given to override\&. + +On success, the controller array is printed for each index and controller +identifier\&. + +OPTIONS +.fi +.PP +\-c , \-\-cntid= +.RS 4 +Retrieve the identify list structure starting with the given controller id\&. +.RE +.PP +\-n , \-\-namespace\-id= +.RS 4 +If provided, will request the controllers attached to the specified namespace\&. If no namespace is given, or set to 0, the command requests the controller list for the entire subsystem, whether or not they are attached to namespace(s)\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-list-ctrl.html b/Documentation/nvme-list-ctrl.html new file mode 100644 index 0000000..c3aa941 --- /dev/null +++ b/Documentation/nvme-list-ctrl.html @@ -0,0 +1,819 @@ + + + + + +nvme-id-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme list-ctrl <device> [--cntid=<cntid> | -c <cntid>]
+                        [--namespace-id=<nsid> | -n <nsid>]
+DESCRIPTION
+
+
+
+
+
For the NVMe device given, sends an identify command for controller list
+and provides the result and returned structure. This uses either mode
+12h or 13h depending on the requested namespace identifier.
+
+The <device> parameter is mandatory and may be either the NVMe character
+device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).
+The starting controller in the list always begins with 0 unless the
+`'--cntid'` option is given to override.
+
+On success, the controller array is printed for each index and controller
+identifier.
+
+OPTIONS
+
+
+
+-c <cntid> +
+
+--cntid=<cntid> +
+
+

+ Retrieve the identify list structure starting with the given controller id. +

+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ If provided, will request the controllers attached to the + specified namespace. If no namespace is given, or set to 0, the + command requests the controller list for the entire subsystem, + whether or not they are attached to namespace(s). +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-list-ctrl.txt b/Documentation/nvme-list-ctrl.txt new file mode 100644 index 0000000..b60afb7 --- /dev/null +++ b/Documentation/nvme-list-ctrl.txt @@ -0,0 +1,46 @@ +nvme-id-ns(1) +============= + +NAME +---- +nvme-list-ctrl - Send NVMe Identify List Controllers, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme list-ctrl' [--cntid= | -c ] + [--namespace-id= | -n ] +DESCRIPTION +----------- +For the NVMe device given, sends an identify command for controller list +and provides the result and returned structure. This uses either mode +12h or 13h depending on the requested namespace identifier. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +The starting controller in the list always begins with 0 unless the +`'--cntid'` option is given to override. + +On success, the controller array is printed for each index and controller +identifier. + +OPTIONS +------- +-c :: +--cntid=:: + Retrieve the identify list structure starting with the given controller id. + +-n :: +--namespace-id=:: + If provided, will request the controllers attached to the + specified namespace. If no namespace is given, or set to 0, the + command requests the controller list for the entire subsystem, + whether or not they are attached to namespace(s). + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-list-ns.1 b/Documentation/nvme-list-ns.1 new file mode 100644 index 0000000..3297d39 --- /dev/null +++ b/Documentation/nvme-list-ns.1 @@ -0,0 +1,61 @@ +'\" t +.\" Title: nvme-id-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ID\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-list-ns \- Send NVMe Identify List Namespaces, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme list\-ns\fR [\-\-namespace\-id= | \-n ] + [\-\-all | \-a] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an identify command for namespace list and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. If the starting namespace in the list always begins with 0 unless the \*(Aq\-\-namespace\-id\*(Aq option is given to override\&. +.sp +On success, the namespace array is printed for each index and nsid for a valid nsid\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the identify list structure starting with the given nsid\&. +.RE +.PP +\-a, \-\-all +.RS 4 +Retrieve the identify list structure for all namespaces in the subsystem, whether attached or inactive\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-list-ns.html b/Documentation/nvme-list-ns.html new file mode 100644 index 0000000..45737bb --- /dev/null +++ b/Documentation/nvme-list-ns.html @@ -0,0 +1,821 @@ + + + + + +nvme-id-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme list-ns <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--all | -a]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an identify command for namespace list +and provides the result and returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the starting namespace in the list always begins with 0 unless the +'--namespace-id' option is given to override.

+

On success, the namespace array is printed for each index and nsid for +a valid nsid.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the identify list structure starting with the given nsid. +

+
+
+-a +
+
+--all +
+
+

+ Retrieve the identify list structure for all namespaces in the + subsystem, whether attached or inactive. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-list-ns.txt b/Documentation/nvme-list-ns.txt new file mode 100644 index 0000000..7cc90d8 --- /dev/null +++ b/Documentation/nvme-list-ns.txt @@ -0,0 +1,44 @@ +nvme-id-ns(1) +============= + +NAME +---- +nvme-list-ns - Send NVMe Identify List Namespaces, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme list-ns' [--namespace-id= | -n ] + [--all | -a] + +DESCRIPTION +----------- +For the NVMe device given, sends an identify command for namespace list +and provides the result and returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the starting namespace in the list always begins with 0 unless the +`'--namespace-id'` option is given to override. + +On success, the namespace array is printed for each index and nsid for +a valid nsid. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the identify list structure starting with the given nsid. + +-a:: +--all:: + Retrieve the identify list structure for all namespaces in the + subsystem, whether attached or inactive. + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-list-subsys.1 b/Documentation/nvme-list-subsys.1 new file mode 100644 index 0000000..a120021 --- /dev/null +++ b/Documentation/nvme-list-subsys.1 @@ -0,0 +1,126 @@ +'\" t +.\" Title: nvme-list-subsys +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LIST\-SUBSYS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-list-subsys \- List all NVMe subsystems +.SH "SYNOPSIS" +.sp +.nf +\fInvme list\-subsys\fR [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +Scan the sysfs tree for NVM Express subsystems and return the controllers for those subsystems as well as some pertinent information about them\&. If a device is given, print out only the values for the controllers and subsystems leading to the device\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR +or +\fIjson\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.if n \{\ +.RS 4 +.\} +.nf +\m[blue]\fBroot@host\fR\m[]\&\s-2\u[1]\d\s+2# nvme list\-subsys +nvme\-subsys0 \- NQN=nvmf\-test +\e + +\- nvme0 rdma traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.1 + +\- nvme1 rdma traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.2 +nvme\-subsys1 \- NQN=nvmf\-test2 +\e + +\- nvme2 rdma traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.2 + +\- nvme3 rdma traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.1 +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +\m[blue]\fBroot@host\fR\m[]\&\s-2\u[1]\d\s+2# nvme list\-subsys \-o json +{ + "Subsystems" : [ + { + "Name" : "nvme\-subsys0", + "NQN" : "nvmf\-test" + }, + { + "Paths" : [ + { + "Name" : "nvme0", + "Transport" : "rdma", + "Address" : "traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.1" + }, + { + "Name" : "nvme1", + "Transport" : "rdma", + "Address" : "traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.2" + } + ] + }, + { + "Name" : "nvme\-subsys1", + "NQN" : "nvmf\-test2" + }, + { + "Paths" : [ + { + "Name" : "nvme2", + "Transport" : "rdma", + "Address" : "traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.2" + }, + { + "Name" : "nvme3", + "Transport" : "rdma", + "Address" : "traddr=1\&.1\&.1\&.3 trsvcid=4420 host_traddr=1\&.1\&.1\&.1" + } + ] + } + ] +} +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite +.SH "NOTES" +.IP " 1." 4 +root@host +.RS 4 +\%mailto:root@host +.RE diff --git a/Documentation/nvme-list-subsys.html b/Documentation/nvme-list-subsys.html new file mode 100644 index 0000000..34e7525 --- /dev/null +++ b/Documentation/nvme-list-subsys.html @@ -0,0 +1,857 @@ + + + + + +nvme-list-subsys(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme list-subsys [-o <fmt> | --output-format=<fmt>] <device>
+
+
+
+
+
+

DESCRIPTION

+
+

Scan the sysfs tree for NVM Express subsystems and return the controllers +for those subsystems as well as some pertinent information about them. +If a device is given, print out only the values for the controllers +and subsystems leading to the device.

+
+
+
+

OPTIONS

+
+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal or json. Only one output + format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
+
root@host# nvme list-subsys
+nvme-subsys0 - NQN=nvmf-test
+\
+ +- nvme0 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1
+ +- nvme1 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2
+nvme-subsys1 - NQN=nvmf-test2
+\
+ +- nvme2 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2
+ +- nvme3 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1
+
+
+
+
root@host# nvme list-subsys -o json
+{
+  "Subsystems" : [
+    {
+      "Name" : "nvme-subsys0",
+      "NQN" : "nvmf-test"
+    },
+    {
+      "Paths" : [
+        {
+          "Name" : "nvme0",
+          "Transport" : "rdma",
+          "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1"
+        },
+        {
+          "Name" : "nvme1",
+          "Transport" : "rdma",
+          "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2"
+        }
+      ]
+    },
+    {
+      "Name" : "nvme-subsys1",
+      "NQN" : "nvmf-test2"
+    },
+    {
+      "Paths" : [
+        {
+          "Name" : "nvme2",
+          "Transport" : "rdma",
+          "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2"
+        },
+        {
+          "Name" : "nvme3",
+          "Transport" : "rdma",
+          "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1"
+        }
+      ]
+    }
+  ]
+}
+
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-list-subsys.txt b/Documentation/nvme-list-subsys.txt new file mode 100644 index 0000000..56045b8 --- /dev/null +++ b/Documentation/nvme-list-subsys.txt @@ -0,0 +1,85 @@ +nvme-list-subsys(1) +=================== + +NAME +---- +nvme-list-subsys - List all NVMe subsystems + +SYNOPSIS +-------- +[verse] +'nvme list-subsys' [-o | --output-format=] + +DESCRIPTION +----------- +Scan the sysfs tree for NVM Express subsystems and return the controllers +for those subsystems as well as some pertinent information about them. +If a device is given, print out only the values for the controllers +and subsystems leading to the device. + +OPTIONS +------- +-o :: +--output-format=:: + Set the reporting format to 'normal' or 'json'. Only one output + format can be used at a time. + +EXAMPLES +-------- +[verse] +root@host# nvme list-subsys +nvme-subsys0 - NQN=nvmf-test +\ + +- nvme0 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1 + +- nvme1 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2 +nvme-subsys1 - NQN=nvmf-test2 +\ + +- nvme2 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2 + +- nvme3 rdma traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1 + +[verse] +root@host# nvme list-subsys -o json +{ + "Subsystems" : [ + { + "Name" : "nvme-subsys0", + "NQN" : "nvmf-test" + }, + { + "Paths" : [ + { + "Name" : "nvme0", + "Transport" : "rdma", + "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1" + }, + { + "Name" : "nvme1", + "Transport" : "rdma", + "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2" + } + ] + }, + { + "Name" : "nvme-subsys1", + "NQN" : "nvmf-test2" + }, + { + "Paths" : [ + { + "Name" : "nvme2", + "Transport" : "rdma", + "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.2" + }, + { + "Name" : "nvme3", + "Transport" : "rdma", + "Address" : "traddr=1.1.1.3 trsvcid=4420 host_traddr=1.1.1.1" + } + ] + } + ] +} + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-list.1 b/Documentation/nvme-list.1 new file mode 100644 index 0000000..da23dad --- /dev/null +++ b/Documentation/nvme-list.1 @@ -0,0 +1,62 @@ +'\" t +.\" Title: nvme-list +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LIST" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-list \- List all recognized NVMe devices +.SH "SYNOPSIS" +.sp +.nf +\fInvme list\fR [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +Scan the sysfs tree for NVM Express devices and return the /dev node for those devices as well as some pertinent information about them\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR +or +\fIjson\fR\&. Only one output format can be used at a time\&. +.RE +.PP +\-v, \-\-verbose +.RS 4 +Increase the information in the output, showing nvme subsystems, controllers and namespaces separately and how they\(cqre realted to each other\&. +.RE +.SH "ENVIRONMENT" +.sp +PCI_IDS_PATH \- Full path of pci\&.ids file in case nvme could not find it in common locations\&. +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-list.html b/Documentation/nvme-list.html new file mode 100644 index 0000000..2cc45bc --- /dev/null +++ b/Documentation/nvme-list.html @@ -0,0 +1,819 @@ + + + + + +nvme-list(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme list [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Scan the sysfs tree for NVM Express devices and return the /dev node +for those devices as well as some pertinent information about them.

+
+
+
+

OPTIONS

+
+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal or json. Only one output + format can be used at a time. +

+
+
+-v +
+
+--verbose +
+
+

+ Increase the information in the output, showing nvme subsystems, + controllers and namespaces separately and how they’re realted to each + other. +

+
+
+
+
+
+

ENVIRONMENT

+
+

PCI_IDS_PATH - Full path of pci.ids file in case nvme could not find it in common locations.

+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-list.txt b/Documentation/nvme-list.txt new file mode 100644 index 0000000..22e0081 --- /dev/null +++ b/Documentation/nvme-list.txt @@ -0,0 +1,42 @@ +nvme-list(1) +============ + +NAME +---- +nvme-list - List all recognized NVMe devices + +SYNOPSIS +-------- +[verse] +'nvme list' [-o | --output-format=] + +DESCRIPTION +----------- +Scan the sysfs tree for NVM Express devices and return the /dev node +for those devices as well as some pertinent information about them. + +OPTIONS +------- +-o :: +--output-format=:: + Set the reporting format to 'normal' or 'json'. Only one output + format can be used at a time. + +-v:: +--verbose:: + Increase the information in the output, showing nvme subsystems, + controllers and namespaces separately and how they're realted to each + other. + +ENVIRONMENT +----------- +PCI_IDS_PATH - Full path of pci.ids file in case nvme could not find it in common locations. + + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-create.1 b/Documentation/nvme-lnvm-create.1 new file mode 100644 index 0000000..68a3a6f --- /dev/null +++ b/Documentation/nvme-lnvm-create.1 @@ -0,0 +1,100 @@ +'\" t +.\" Title: nvme-lnvm-create +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-CREATE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-create \- Instantiate a target on top of a LightNVM enabled device +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-create\fR [\-\-device\-name= | \-d ] + [\-\-target\-name= | \-n ] + [\-\-target\-type= | \-t ] + [\-\-lun\-begin | \-b ] + [\-\-lun\-end | \-e ] +.fi +.SH "DESCRIPTION" +.sp +Instantiate a target on top of a LightNVM enabled device\&. This exposes the physical for the user to use\&. +.sp +The target name is the name of which the media is exposed as in /dev/ +.sp +The target type is the target to be instantiated\&. Typically pblk or rrpc\&. +.sp +LUN begin and end defines the range of LUNs to use for a target instantiation\&. +.SH "OPTIONS" +.PP +\-\-device\-name=, \-d +.RS 4 +Device name to initialize\&. +.RE +.PP +\-\-target\-name=, \-n +.RS 4 +Target name of the device to initialize\&. For example: target0\&. +.RE +.PP +\-\-target\-type=, \-t +.RS 4 +Target type of the device to use\&. For example: pblk +.RE +.PP +\-\-lun\-begin , \-b +.RS 4 +Begin LUN id offset to use for target +.RE +.PP +\-\-lun\-end , \-e +.RS 4 +End LUN id offset to use for target +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Initialize nvme0n1 with pblk target with 64 LUNs\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-create \-d nvme0n1 \-t pblk \-n target0 \-b 0 \-e 63 +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-create.html b/Documentation/nvme-lnvm-create.html new file mode 100644 index 0000000..cde3761 --- /dev/null +++ b/Documentation/nvme-lnvm-create.html @@ -0,0 +1,865 @@ + + + + + + +nvme-lnvm-create(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-create [--device-name=<DEVICE> | -d <DEVICE>]
+                        [--target-name=<TARGET> | -n <TARGET>]
+                        [--target-type=<TARGETTYPE> | -t <TARGETTYPE>]
+                        [--lun-begin <NUM> | -b <NUM>]
+                        [--lun-end <NUM> | -e <NUM>]
+
+
+
+
+
+

DESCRIPTION

+
+

Instantiate a target on top of a LightNVM enabled device. This exposes the +physical for the user to use.

+

The target name is the name of which the media is exposed as in +/dev/<targetname>

+

The target type is the target to be instantiated. Typically pblk or rrpc.

+

LUN begin and end defines the range of LUNs to use for a target instantiation.

+
+
+
+

OPTIONS

+
+
+
+--device-name=<DEVICE> +
+
+-d <DEVICE> +
+
+

+ Device name to initialize. +

+
+
+--target-name=<TARGET> +
+
+-n <TARGET> +
+
+

+ Target name of the device to initialize. For example: target0. +

+
+
+--target-type=<TARGETTYPE> +
+
+-t <TARGETTYPE> +
+
+

+ Target type of the device to use. For example: pblk +

+
+
+--lun-begin <NUM> +
+
+-b <NUM> +
+
+

+ Begin LUN id offset to use for target +

+
+
+--lun-end <NUM> +
+
+-e <NUM> +
+
+

+ End LUN id offset to use for target +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Initialize nvme0n1 with pblk target with 64 LUNs. +

    +
  • +
+
+
+
# nvme lnvm-create -d nvme0n1 -t pblk -n target0 -b 0 -e 63
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-create.txt b/Documentation/nvme-lnvm-create.txt new file mode 100644 index 0000000..3c9109d --- /dev/null +++ b/Documentation/nvme-lnvm-create.txt @@ -0,0 +1,60 @@ +nvme-lnvm-create(1) +=================== + +NAME +---- +nvme-lnvm-create - Instantiate a target on top of a LightNVM enabled device + +SYNOPSIS +-------- +[verse] +'nvme lnvm-create' [--device-name= | -d ] + [--target-name= | -n ] + [--target-type= | -t ] + [--lun-begin | -b ] + [--lun-end | -e ] + +DESCRIPTION +----------- +Instantiate a target on top of a LightNVM enabled device. This exposes the +physical for the user to use. + +The target name is the name of which the media is exposed as in +/dev/ + +The target type is the target to be instantiated. Typically pblk or rrpc. + +LUN begin and end defines the range of LUNs to use for a target instantiation. + +OPTIONS +------- +--device-name=:: +-d :: + Device name to initialize. + +--target-name=:: +-n :: + Target name of the device to initialize. For example: target0. + +--target-type=:: +-t :: + Target type of the device to use. For example: pblk + +--lun-begin :: +-b :: + Begin LUN id offset to use for target + +--lun-end :: +-e :: + End LUN id offset to use for target + +EXAMPLES +-------- +* Initialize nvme0n1 with pblk target with 64 LUNs. +------------ +# nvme lnvm-create -d nvme0n1 -t pblk -n target0 -b 0 -e 63 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-diag-bbtbl.1 b/Documentation/nvme-lnvm-diag-bbtbl.1 new file mode 100644 index 0000000..3d80de0 --- /dev/null +++ b/Documentation/nvme-lnvm-diag-bbtbl.1 @@ -0,0 +1,117 @@ +'\" t +.\" Title: nvme-lnvm-diag-bbtbl +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-DIAG\-BB" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-diag-bbtbl \- Diagnose the bad block table +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-diag\-bbtbl\fR [\-\-namespace\-id= | \-n ] + [\-\-channel\-id= | \-c ] + [\-\-lun\-id= | \-l ] + [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +Retrieve the bad block table for a given channel and lun\&. +.sp +The statistics will be shown in the default case, and the actual output bad block information can be retrieved when \-\-raw\-binary is passed\&. +.sp +The raw binary output follows this format: +.sp +Channel 0, LUN0 (Dual plane flash) +.sp +Byte 0 \(-> Plane 0, Block 0 Byte 1 \(-> Plane 1, Block 0 Byte 2 \(-> Plane 0, Block 1 \&... +.SH "OPTIONS" +.PP +\-\-namespace\-id=, \-n +.RS 4 +Namespace id to use +.RE +.PP +\-\-channel\-id=, \-c +.RS 4 +Channel id +.RE +.PP +\-\-lun\-id=, \-l +.RS 4 +LUN id +.RE +.PP +\-\-raw\-binary, \-b +.RS 4 +Returns the bad block table in binary form without statistics\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Retrieve bad block table statistics for physical device nvme0, channel 0, and lun 0: +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-diag\-bbtbl /dev/nvme0 \-c 0 \-n 0 +.fi +.if n \{\ +.RE +.\} +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Display the bad block table in raw form without statistics for same query: +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-diag\-bbtbl /dev/nvme0 \-c 0 \-n 0 \-b | hexdump +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-diag-bbtbl.html b/Documentation/nvme-lnvm-diag-bbtbl.html new file mode 100644 index 0000000..4b177c7 --- /dev/null +++ b/Documentation/nvme-lnvm-diag-bbtbl.html @@ -0,0 +1,864 @@ + + + + + +nvme-lnvm-diag-bbtbl(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-diag-bbtbl [--namespace-id=<NUM> | -n <NUM>]
+                        [--channel-id=<CHID> | -c <CHID>]
+                        [--lun-id=<LUNID> | -l <LUNID>]
+                        [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieve the bad block table for a given channel and lun.

+

The statistics will be shown in the default case, and the actual output bad +block information can be retrieved when --raw-binary is passed.

+

The raw binary output follows this format:

+

Channel 0, LUN0 (Dual plane flash)

+

Byte 0 → Plane 0, Block 0 +Byte 1 → Plane 1, Block 0 +Byte 2 → Plane 0, Block 1 +…

+
+
+
+

OPTIONS

+
+
+
+--namespace-id=<NUM> +
+
+-n <NUM> +
+
+

+ Namespace id to use +

+
+
+--channel-id=<NUM> +
+
+-c +
+
+

+ Channel id +

+
+
+--lun-id=<NUM> +
+
+-l +
+
+

+ LUN id +

+
+
+--raw-binary +
+
+-b +
+
+

+ Returns the bad block table in binary form without statistics. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Retrieve bad block table statistics for physical device nvme0, channel 0, and +lun 0: +

    +
  • +
+
+
+
# nvme lnvm-diag-bbtbl /dev/nvme0 -c 0 -n 0
+
+
    +
  • +

    +Display the bad block table in raw form without statistics for same query: +

    +
  • +
+
+
+
# nvme lnvm-diag-bbtbl /dev/nvme0 -c 0 -n 0 -b | hexdump
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-diag-bbtbl.txt b/Documentation/nvme-lnvm-diag-bbtbl.txt new file mode 100644 index 0000000..7324807 --- /dev/null +++ b/Documentation/nvme-lnvm-diag-bbtbl.txt @@ -0,0 +1,65 @@ +nvme-lnvm-diag-bbtbl(1) +======================= + +NAME +---- +nvme-lnvm-diag-bbtbl - Diagnose the bad block table + +SYNOPSIS +-------- +[verse] +'nvme lnvm-diag-bbtbl' [--namespace-id= | -n ] + [--channel-id= | -c ] + [--lun-id= | -l ] + [--raw-binary | -b] + +DESCRIPTION +----------- +Retrieve the bad block table for a given channel and lun. + +The statistics will be shown in the default case, and the actual output bad +block information can be retrieved when --raw-binary is passed. + +The raw binary output follows this format: + +Channel 0, LUN0 (Dual plane flash) + +Byte 0 -> Plane 0, Block 0 +Byte 1 -> Plane 1, Block 0 +Byte 2 -> Plane 0, Block 1 +... + +OPTIONS +------- +--namespace-id=:: +-n :: + Namespace id to use + +--channel-id=:: +-c:: + Channel id + +--lun-id=:: +-l:: + LUN id + +--raw-binary:: +-b:: + Returns the bad block table in binary form without statistics. + +EXAMPLES +-------- +* Retrieve bad block table statistics for physical device nvme0, channel 0, and +lun 0: +------------ +# nvme lnvm-diag-bbtbl /dev/nvme0 -c 0 -n 0 +------------ + +* Display the bad block table in raw form without statistics for same query: +------------ +# nvme lnvm-diag-bbtbl /dev/nvme0 -c 0 -n 0 -b | hexdump +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-diag-set-bbtbl.1 b/Documentation/nvme-lnvm-diag-set-bbtbl.1 new file mode 100644 index 0000000..1d67328 --- /dev/null +++ b/Documentation/nvme-lnvm-diag-set-bbtbl.1 @@ -0,0 +1,99 @@ +'\" t +.\" Title: nvme-lnvm-diag-set-bbtbl +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-DIAG\-SE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-diag-set-bbtbl \- Set a block state in the bad block table +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-diag\-set\-bbtbl\fR [\-\-namespace\-id= | \-n ] + [\-\-channel\-id= | \-c ] + [\-\-lun\-id= | \-l ] + [\-\-plane\-id= | \-p ] + [\-\-block\-id= | \-b ] + [\-\-value= | \-v ] +.fi +.SH "DESCRIPTION" +.sp +Set the bad block table for a given channel, lun, plane and block with value v\&. +.sp +For each block available, the status byte is read as follows: +.sp +0: Good block 1: Bad block 2: Grown bad block 4: Device reserved block 8: Host\-side reserved block 16: Media managed reserved block +.SH "OPTIONS" +.PP +\-\-namespace\-id=, \-n +.RS 4 +Namespace id to use +.RE +.PP +\-\-channel\-id, \-c +.RS 4 +Channel id +.RE +.PP +\-\-lun\-id, \-l +.RS 4 +LUN id +.RE +.PP +\-\-plane\-id, \-p +.RS 4 +Plane id +.RE +.PP +\-\-block\-id, \-b +.RS 4 +Block id +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Set channel 0, lun 0, plane 0, block 10 to bad block value 2 (grown bad) on physical device /dev/nvme0 +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-diag\-set\-bbtbl /dev/nvme0 \-c 0 \-l 0 \-p 0 \-b 10 \-v 2 +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-diag-set-bbtbl.html b/Documentation/nvme-lnvm-diag-set-bbtbl.html new file mode 100644 index 0000000..be9d173 --- /dev/null +++ b/Documentation/nvme-lnvm-diag-set-bbtbl.html @@ -0,0 +1,869 @@ + + + + + + +nvme-lnvm-diag-set-bbtbl(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-diag-set-bbtbl [--namespace-id=<NUM> | -n <NUM>]
+                        [--channel-id=<CHID> | -c <CHID>]
+                        [--lun-id=<LUNID> | -l <LUNID>]
+                        [--plane-id=<PLANEID> | -p <PLANEID>]
+                        [--block-id=<BLKID> | -b <BLKID>]
+                        [--value=<NUM> | -v <NUM>]
+
+
+
+
+
+

DESCRIPTION

+
+

Set the bad block table for a given channel, lun, plane and block with value v.

+

For each block available, the status byte is read as follows:

+

0: Good block +1: Bad block +2: Grown bad block +4: Device reserved block +8: Host-side reserved block +16: Media managed reserved block

+
+
+
+

OPTIONS

+
+
+
+--namespace-id=<NUM> +
+
+-n <NUM> +
+
+

+ Namespace id to use +

+
+
+--channel-id +
+
+-c +
+
+

+ Channel id +

+
+
+--lun-id +
+
+-l +
+
+

+ LUN id +

+
+
+--plane-id +
+
+-p +
+
+

+ Plane id +

+
+
+--block-id +
+
+-b +
+
+

+ Block id +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Set channel 0, lun 0, plane 0, block 10 to bad block value 2 (grown bad) + on physical device /dev/nvme0 +

    +
  • +
+
+
+
# nvme lnvm-diag-set-bbtbl /dev/nvme0 -c 0 -l 0 -p 0 -b 10 -v 2
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-diag-set-bbtbl.txt b/Documentation/nvme-lnvm-diag-set-bbtbl.txt new file mode 100644 index 0000000..f5dd004 --- /dev/null +++ b/Documentation/nvme-lnvm-diag-set-bbtbl.txt @@ -0,0 +1,63 @@ +nvme-lnvm-diag-set-bbtbl(1) +=========================== + +NAME +---- +nvme-lnvm-diag-set-bbtbl - Set a block state in the bad block table + +SYNOPSIS +-------- +[verse] +'nvme lnvm-diag-set-bbtbl' [--namespace-id= | -n ] + [--channel-id= | -c ] + [--lun-id= | -l ] + [--plane-id= | -p ] + [--block-id= | -b ] + [--value= | -v ] + +DESCRIPTION +----------- +Set the bad block table for a given channel, lun, plane and block with value v. + +For each block available, the status byte is read as follows: + +0: Good block +1: Bad block +2: Grown bad block +4: Device reserved block +8: Host-side reserved block +16: Media managed reserved block + +OPTIONS +------- +--namespace-id=:: +-n :: + Namespace id to use + +--channel-id:: +-c:: + Channel id + +--lun-id:: +-l:: + LUN id + +--plane-id:: +-p:: + Plane id + +--block-id:: +-b:: + Block id + +EXAMPLES +-------- +* Set channel 0, lun 0, plane 0, block 10 to bad block value 2 (grown bad) + on physical device /dev/nvme0 +------------ +# nvme lnvm-diag-set-bbtbl /dev/nvme0 -c 0 -l 0 -p 0 -b 10 -v 2 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-factory.1 b/Documentation/nvme-lnvm-factory.1 new file mode 100644 index 0000000..fb0a70b --- /dev/null +++ b/Documentation/nvme-lnvm-factory.1 @@ -0,0 +1,109 @@ +'\" t +.\" Title: nvme-lnvm-factory +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-FACTORY" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-factory \- Factory reset a LightNVM device +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-factory\fR [\-\-device\-name= | \-d ] + [\-\-erase\-only\-marked | \-e] + [\-\-clear\-host\-side\-blks | \-s] + [\-\-clear\-bb\-blks | \-b] +.fi +.SH "DESCRIPTION" +.sp +Instantiate a target on top of a LightNVM enabled device\&. This exposes the physical for the user to use\&. +.SH "OPTIONS" +.PP +\-\-device\-name=, \-d +.RS 4 +Device name to factory initialize +.RE +.PP +\-\-erase\-only\-marked, \-e +.RS 4 +Erases only blocks that are marked in the bad block list +.RE +.PP +\-\-clear\-host\-side\-blks, \-s +.RS 4 +Remove host\-side bad block marks\&. This clear the media manager registration +.RE +.PP +\-\-clear\-bb\-blks, \-b +.RS 4 +Removes the grown bad block marks\&. Allowing them to be rediscovered\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Factory reset of device nvme0n1 +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-factory \-d nvme0n1 +.fi +.if n \{\ +.RE +.\} +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Complete factory reset of device nvme0n1 +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-factory \-d nvme0n1 \-s \-b +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-factory.html b/Documentation/nvme-lnvm-factory.html new file mode 100644 index 0000000..a93e398 --- /dev/null +++ b/Documentation/nvme-lnvm-factory.html @@ -0,0 +1,857 @@ + + + + + +nvme-lnvm-factory(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-factory [--device-name=<DEVICE> | -d <DEVICE>]
+                        [--erase-only-marked | -e]
+                        [--clear-host-side-blks | -s]
+                        [--clear-bb-blks | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

Instantiate a target on top of a LightNVM enabled device. This exposes the +physical for the user to use.

+
+
+
+

OPTIONS

+
+
+
+--device-name=<DEVICE> +
+
+-d <DEVICE> +
+
+

+ Device name to factory initialize +

+
+
+--erase-only-marked +
+
+-e +
+
+

+ Erases only blocks that are marked in the bad block list +

+
+
+--clear-host-side-blks +
+
+-s +
+
+

+ Remove host-side bad block marks. This clear the media manager + registration +

+
+
+--clear-bb-blks +
+
+-b +
+
+

+ Removes the grown bad block marks. Allowing them to be rediscovered. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Factory reset of device nvme0n1 +

    +
  • +
+
+
+
# nvme lnvm-factory -d nvme0n1
+
+
    +
  • +

    +Complete factory reset of device nvme0n1 +

    +
  • +
+
+
+
# nvme lnvm-factory -d nvme0n1 -s -b
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-factory.txt b/Documentation/nvme-lnvm-factory.txt new file mode 100644 index 0000000..baa7a69 --- /dev/null +++ b/Documentation/nvme-lnvm-factory.txt @@ -0,0 +1,54 @@ +nvme-lnvm-factory(1) +==================== + +NAME +---- +nvme-lnvm-factory - Factory reset a LightNVM device + +SYNOPSIS +-------- +[verse] +'nvme lnvm-factory' [--device-name= | -d ] + [--erase-only-marked | -e] + [--clear-host-side-blks | -s] + [--clear-bb-blks | -b] + +DESCRIPTION +----------- +Instantiate a target on top of a LightNVM enabled device. This exposes the +physical for the user to use. + +OPTIONS +------- +--device-name=:: +-d :: + Device name to factory initialize + +--erase-only-marked:: +-e:: + Erases only blocks that are marked in the bad block list + +--clear-host-side-blks:: +-s:: + Remove host-side bad block marks. This clear the media manager + registration + +--clear-bb-blks:: +-b:: + Removes the grown bad block marks. Allowing them to be rediscovered. + +EXAMPLES +-------- +* Factory reset of device nvme0n1 +------------ +# nvme lnvm-factory -d nvme0n1 +------------ + +* Complete factory reset of device nvme0n1 +------------ +# nvme lnvm-factory -d nvme0n1 -s -b +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-id-ns.1 b/Documentation/nvme-lnvm-id-ns.1 new file mode 100644 index 0000000..22efa51 --- /dev/null +++ b/Documentation/nvme-lnvm-id-ns.1 @@ -0,0 +1,88 @@ +'\" t +.\" Title: nvme-lnvm-id-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-ID\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-id-ns \- Identify Geometry for LightNVM NVMe device +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-id\-ns\fR [\-\-namespace\-id= | \-n ] + [\-\-force | \-f] + [\-\-raw\-binary | \-b] + [\-\-human\-readable | \-H] +.fi +.SH "DESCRIPTION" +.sp +Send an Identify Geometry command to the given LightNVM device, returns properties of the specified namespace in either human\-readable or binary format\&. +.SH "OPTIONS" +.PP +\-\-namespace\-id=, \-n +.RS 4 +Retrieve the geometry from the selected namespace\&. +.RE +.PP +\-\-force, \-f +.RS 4 +Try to read the data and assume it is a LightNVM device +.RE +.PP +\-\-raw\-binary, \-b +.RS 4 +Output the raw output +.RE +.PP +\-\-human\-readable, \-H +.RS 4 +Output the status in human readable format +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Retrieve the geometry from nvme0 +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-id\-ns /dev/nvme0 \-n 1 +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-id-ns.html b/Documentation/nvme-lnvm-id-ns.html new file mode 100644 index 0000000..a3bc888 --- /dev/null +++ b/Documentation/nvme-lnvm-id-ns.html @@ -0,0 +1,850 @@ + + + + + + +nvme-lnvm-id-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-id-ns <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--force | -f]
+                        [--raw-binary | -b]
+                        [--human-readable | -H]
+
+
+
+
+
+

DESCRIPTION

+
+

Send an Identify Geometry command to the given LightNVM device, returns +properties of the specified namespace in either human-readable or binary +format.

+
+
+
+

OPTIONS

+
+
+
+--namespace-id=<nsid> +
+
+-n <nsid> +
+
+

+ Retrieve the geometry from the selected namespace. +

+
+
+--force +
+
+-f +
+
+

+ Try to read the data and assume it is a LightNVM device +

+
+
+--raw-binary +
+
+-b +
+
+

+ Output the raw output +

+
+
+--human-readable +
+
+-H +
+
+

+ Output the status in human readable format +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Retrieve the geometry from nvme0 +

    +
  • +
+
+
+
# nvme lnvm-id-ns /dev/nvme0 -n 1
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-id-ns.txt b/Documentation/nvme-lnvm-id-ns.txt new file mode 100644 index 0000000..1a3565f --- /dev/null +++ b/Documentation/nvme-lnvm-id-ns.txt @@ -0,0 +1,49 @@ +nvme-lnvm-id-ns(1) +================== + +NAME +---- +nvme-lnvm-id-ns - Identify Geometry for LightNVM NVMe device + +SYNOPSIS +-------- +[verse] +'nvme lnvm-id-ns' [--namespace-id= | -n ] + [--force | -f] + [--raw-binary | -b] + [--human-readable | -H] + +DESCRIPTION +----------- +Send an Identify Geometry command to the given LightNVM device, returns +properties of the specified namespace in either human-readable or binary +format. + +OPTIONS +------- +--namespace-id=:: +-n :: + Retrieve the geometry from the selected namespace. + +--force:: +-f:: + Try to read the data and assume it is a LightNVM device + +--raw-binary:: +-b:: + Output the raw output + +--human-readable:: +-H:: + Output the status in human readable format + +EXAMPLES +-------- +* Retrieve the geometry from nvme0 +------------ +# nvme lnvm-id-ns /dev/nvme0 -n 1 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-info.1 b/Documentation/nvme-lnvm-info.1 new file mode 100644 index 0000000..e1f9c97 --- /dev/null +++ b/Documentation/nvme-lnvm-info.1 @@ -0,0 +1,48 @@ +'\" t +.\" Title: nvme-lnvm-info +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-INFO" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-info \- Show general information and registered target types with LightNVM +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-info\fR +.fi +.SH "DESCRIPTION" +.sp +Show general information and registered target types with LightNVM\&. +.SH "OPTIONS" +.sp +No options yet\&. +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-info.html b/Documentation/nvme-lnvm-info.html new file mode 100644 index 0000000..13b714f --- /dev/null +++ b/Documentation/nvme-lnvm-info.html @@ -0,0 +1,786 @@ + + + + + +nvme-lnvm-info(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-info
+
+
+
+
+
+

DESCRIPTION

+
+

Show general information and registered target types with LightNVM.

+
+
+
+

OPTIONS

+
+

No options yet.

+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-info.txt b/Documentation/nvme-lnvm-info.txt new file mode 100644 index 0000000..e755c9c --- /dev/null +++ b/Documentation/nvme-lnvm-info.txt @@ -0,0 +1,27 @@ +nvme-lnvm-info(1) +================= + +NAME +---- +nvme-lnvm-info - Show general information and registered target types with LightNVM + +SYNOPSIS +-------- +[verse] +'nvme lnvm-info' + +DESCRIPTION +----------- +Show general information and registered target types with LightNVM. + +OPTIONS +------- +No options yet. + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-init.1 b/Documentation/nvme-lnvm-init.1 new file mode 100644 index 0000000..b21a5c7 --- /dev/null +++ b/Documentation/nvme-lnvm-init.1 @@ -0,0 +1,97 @@ +'\" t +.\" Title: nvme-lnvm-init +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-INIT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-init \- Initialize LightNVM device with media manager +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-init\fR [\-\-device\-name= | \-d ] + [\-\-mediamgr\-name | \-m] +.fi +.SH "DESCRIPTION" +.sp +Initialize LightNVM device\&. A LightNVM/Open\-Channel SSD must have a media manager associated before it can be exposed to the user\&. The default is to initialize the general media manager on top of the device\&. +.SH "OPTIONS" +.PP +\-\-device\-name=, \-d +.RS 4 +Device name to initialize\&. +.RE +.PP +\-\-mediamgr\-name=, \-m +.RS 4 +Media Manager name to use for initialization\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Initialize nvme0n1 +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-init \-d nvme0n1 +.fi +.if n \{\ +.RE +.\} +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Initialize nvme0n1 with gennvm media manager (default media manager) +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme lnvm\-init \-d nvme0n1 \-m gennvm +.fi +.if n \{\ +.RE +.\} +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-init.html b/Documentation/nvme-lnvm-init.html new file mode 100644 index 0000000..d1fc894 --- /dev/null +++ b/Documentation/nvme-lnvm-init.html @@ -0,0 +1,833 @@ + + + + + +nvme-lnvm-init(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-init [--device-name=<DEVICE> | -d <DEVICE>]
+                        [--mediamgr-name | -m]
+
+
+
+
+
+

DESCRIPTION

+
+

Initialize LightNVM device. A LightNVM/Open-Channel SSD must have a media +manager associated before it can be exposed to the user. The default is to +initialize the general media manager on top of the device.

+
+
+
+

OPTIONS

+
+
+
+--device-name=<DEVICE> +
+
+-d <DEVICE> +
+
+

+ Device name to initialize. +

+
+
+--mediamgr-name=<MediaMgr> +
+
+-m <MediaMgr> +
+
+

+ Media Manager name to use for initialization. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Initialize nvme0n1 +

    +
  • +
+
+
+
# nvme lnvm-init -d nvme0n1
+
+
    +
  • +

    +Initialize nvme0n1 with gennvm media manager (default media manager) +

    +
  • +
+
+
+
# nvme lnvm-init -d nvme0n1 -m gennvm
+
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-init.txt b/Documentation/nvme-lnvm-init.txt new file mode 100644 index 0000000..0d922a9 --- /dev/null +++ b/Documentation/nvme-lnvm-init.txt @@ -0,0 +1,44 @@ +nvme-lnvm-init(1) +================= + +NAME +---- +nvme-lnvm-init - Initialize LightNVM device with media manager + +SYNOPSIS +-------- +[verse] +'nvme lnvm-init' [--device-name= | -d ] + [--mediamgr-name | -m] + +DESCRIPTION +----------- +Initialize LightNVM device. A LightNVM/Open-Channel SSD must have a media +manager associated before it can be exposed to the user. The default is to +initialize the general media manager on top of the device. + +OPTIONS +------- +--device-name=:: +-d :: + Device name to initialize. + +--mediamgr-name=:: +-m :: + Media Manager name to use for initialization. + +EXAMPLES +-------- +* Initialize nvme0n1 +------------ +# nvme lnvm-init -d nvme0n1 +------------ + +* Initialize nvme0n1 with gennvm media manager (default media manager) +------------ +# nvme lnvm-init -d nvme0n1 -m gennvm +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-list.1 b/Documentation/nvme-lnvm-list.1 new file mode 100644 index 0000000..65eb085 --- /dev/null +++ b/Documentation/nvme-lnvm-list.1 @@ -0,0 +1,48 @@ +'\" t +.\" Title: nvme-lnvm-list +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-LIST" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-list \- List all recognized LightNVM NVMe devices +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-list\fR +.fi +.SH "DESCRIPTION" +.sp +List all registered LightNVM devices\&. +.SH "OPTIONS" +.sp +No options yet\&. +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-list.html b/Documentation/nvme-lnvm-list.html new file mode 100644 index 0000000..0f42d8f --- /dev/null +++ b/Documentation/nvme-lnvm-list.html @@ -0,0 +1,786 @@ + + + + + +nvme-lnvm-list(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-list
+
+
+
+
+
+

DESCRIPTION

+
+

List all registered LightNVM devices.

+
+
+
+

OPTIONS

+
+

No options yet.

+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-list.txt b/Documentation/nvme-lnvm-list.txt new file mode 100644 index 0000000..959f6b9 --- /dev/null +++ b/Documentation/nvme-lnvm-list.txt @@ -0,0 +1,27 @@ +nvme-lnvm-list(1) +================= + +NAME +---- +nvme-lnvm-list - List all recognized LightNVM NVMe devices + +SYNOPSIS +-------- +[verse] +'nvme lnvm-list' + +DESCRIPTION +----------- +List all registered LightNVM devices. + +OPTIONS +------- +No options yet. + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-lnvm-remove.1 b/Documentation/nvme-lnvm-remove.1 new file mode 100644 index 0000000..3dc3140 --- /dev/null +++ b/Documentation/nvme-lnvm-remove.1 @@ -0,0 +1,53 @@ +'\" t +.\" Title: nvme-lnvm-remove +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-LNVM\-REMOVE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-lnvm-remove \- Remove an initialized LightNVM target\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme lnvm\-remove\fR [\-\-target\-name= | \-n ] +.fi +.SH "DESCRIPTION" +.sp +Remove an initialized target\&. +.sp +The target name is the name of which the media is exposed as in /dev/ +.SH "OPTIONS" +.PP +\-\-target\-name=, \-n +.RS 4 +Target name of the device to initialize\&. For example: target0\&. +.RE +.SH "EXAMPLES" +.sp +None yet +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-lnvm-remove.html b/Documentation/nvme-lnvm-remove.html new file mode 100644 index 0000000..ac2e69a --- /dev/null +++ b/Documentation/nvme-lnvm-remove.html @@ -0,0 +1,800 @@ + + + + + +nvme-lnvm-remove(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme lnvm-remove [--target-name=<TARGET> | -n <TARGET>]
+
+
+
+
+
+

DESCRIPTION

+
+

Remove an initialized target.

+

The target name is the name of which the media is exposed as in +/dev/<TARGET>

+
+
+
+

OPTIONS

+
+
+
+--target-name=<TARGET> +
+
+-n <TARGET> +
+
+

+ Target name of the device to initialize. For example: target0. +

+
+
+
+
+
+

EXAMPLES

+
+

None yet

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-lnvm-remove.txt b/Documentation/nvme-lnvm-remove.txt new file mode 100644 index 0000000..f5cdd6e --- /dev/null +++ b/Documentation/nvme-lnvm-remove.txt @@ -0,0 +1,32 @@ +nvme-lnvm-remove(1) +=================== + +NAME +---- +nvme-lnvm-remove - Remove an initialized LightNVM target. + +SYNOPSIS +-------- +[verse] +'nvme lnvm-remove' [--target-name= | -n ] + +DESCRIPTION +----------- +Remove an initialized target. + +The target name is the name of which the media is exposed as in +/dev/ + +OPTIONS +------- +--target-name=:: +-n :: + Target name of the device to initialize. For example: target0. + +EXAMPLES +-------- +None yet + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-netapp-ontapdevices.1 b/Documentation/nvme-netapp-ontapdevices.1 new file mode 100644 index 0000000..83bc5cb --- /dev/null +++ b/Documentation/nvme-netapp-ontapdevices.1 @@ -0,0 +1,74 @@ +'\" t +.\" Title: nvme-netapp-ontapdevices +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-NETAPP\-ONTAPD" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-netapp-ontapdevices \- Display information about ONTAP devices +.SH "SYNOPSIS" +.sp +.nf +\fInvme netapp ontapdevices\fR [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +Display information about ONTAP devices on the host\&. The ONTAP devices are identified using the Identify Controller data\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR +(default), +\fIcolumn\fR, or +\fIjson\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Display information, in a column\-based format, for ONTAP devices\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme netapp ontapdevices \-o column +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-netapp-ontapdevices.html b/Documentation/nvme-netapp-ontapdevices.html new file mode 100644 index 0000000..29f4bda --- /dev/null +++ b/Documentation/nvme-netapp-ontapdevices.html @@ -0,0 +1,810 @@ + + + + + +nvme-netapp-ontapdevices(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme netapp ontapdevices [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Display information about ONTAP devices on the host. The ONTAP devices are +identified using the Identify Controller data.

+
+
+
+

OPTIONS

+
+
+
+-o <fmt> +
+
+--output-format=<fmt> +
+
+

+ Set the reporting format to normal (default), column, or + json. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Display information, in a column-based format, for ONTAP devices. +

    +
    +
    +
    # nvme netapp ontapdevices -o column
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-netapp-ontapdevices.txt b/Documentation/nvme-netapp-ontapdevices.txt new file mode 100644 index 0000000..c292758 --- /dev/null +++ b/Documentation/nvme-netapp-ontapdevices.txt @@ -0,0 +1,35 @@ +nvme-netapp-ontapdevices(1) +=========================== + +NAME +---- +nvme-netapp-ontapdevices - Display information about ONTAP devices + +SYNOPSIS +-------- +[verse] +'nvme netapp ontapdevices' [-o | --output-format=] + +DESCRIPTION +----------- +Display information about ONTAP devices on the host. The ONTAP devices are +identified using the Identify Controller data. + +OPTIONS +------- +-o :: +--output-format=:: + Set the reporting format to 'normal' (default), 'column', or + 'json'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Display information, in a column-based format, for ONTAP devices. ++ +------------ +# nvme netapp ontapdevices -o column +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-netapp-smdevices.1 b/Documentation/nvme-netapp-smdevices.1 new file mode 100644 index 0000000..78622ea --- /dev/null +++ b/Documentation/nvme-netapp-smdevices.1 @@ -0,0 +1,74 @@ +'\" t +.\" Title: nvme-netapp-smdevices +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-NETAPP\-SMDEVI" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-netapp-smdevices \- Display information for each NVMe path to an E\-Series volume +.SH "SYNOPSIS" +.sp +.nf +\fInvme netapp smdevices\fR [\-o | \-\-output\-format=] +.fi +.SH "DESCRIPTION" +.sp +Display vendor\-specific information for each NVMe path to an E\-Series namespace currently connected to the host\&. The E\-Series paths are identified from the NVMe nodes in /dev by sending an Identify Controller\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR +(default), +\fIcolumn\fR, or +\fIjson\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Display information, in a column\-based format, for each path to an E\-Series namespace\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme netapp smdevices \-o column +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-netapp-smdevices.html b/Documentation/nvme-netapp-smdevices.html new file mode 100644 index 0000000..71e5014 --- /dev/null +++ b/Documentation/nvme-netapp-smdevices.html @@ -0,0 +1,816 @@ + + + + + + +nvme-netapp-smdevices(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme netapp smdevices [-o <fmt> | --output-format=<fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Display vendor-specific information for each NVMe path to an E-Series namespace +currently connected to the host. The E-Series paths are identified from the +NVMe nodes in /dev by sending an Identify Controller.

+
+
+
+

OPTIONS

+
+
+
+-o <fmt> +
+
+--output-format=<fmt> +
+
+

+ Set the reporting format to normal (default), column, or + json. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Display information, in a column-based format, for each path to an E-Series +namespace. +

    +
    +
    +
    # nvme netapp smdevices -o column
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-netapp-smdevices.txt b/Documentation/nvme-netapp-smdevices.txt new file mode 100644 index 0000000..b66b98d --- /dev/null +++ b/Documentation/nvme-netapp-smdevices.txt @@ -0,0 +1,37 @@ +nvme-netapp-smdevices(1) +======================== + +NAME +---- +nvme-netapp-smdevices - Display information for each NVMe path to an E-Series volume + +SYNOPSIS +-------- +[verse] +'nvme netapp smdevices' [-o | --output-format=] + +DESCRIPTION +----------- +Display vendor-specific information for each NVMe path to an E-Series namespace +currently connected to the host. The E-Series paths are identified from the +NVMe nodes in /dev by sending an Identify Controller. + +OPTIONS +------- +-o :: +--output-format=:: + Set the reporting format to 'normal' (default), 'column', or + 'json'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Display information, in a column-based format, for each path to an E-Series +namespace. ++ +------------ +# nvme netapp smdevices -o column +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-ns-descs.1 b/Documentation/nvme-ns-descs.1 new file mode 100644 index 0000000..cddc126 --- /dev/null +++ b/Documentation/nvme-ns-descs.1 @@ -0,0 +1,115 @@ +'\" t +.\" Title: nvme-ns-descs +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-NS\-DESCS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-ns-descs \- Send NVMe Identify for a list of Namespace Identification Descriptor structure, return result and structure +.SH "SYNOPSIS" +.sp +.nf +\fInvme ns\-descs\fR [\-\-namespace\-id= | \-n ] + [\-\-raw\-binary | \-b] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends an identify for a list of namespace identification descriptor structures command and provides the result and returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. If the character device is given, the \*(Aq\-\-namespace\-id\*(Aq option is mandatory, otherwise it will use the ns\-id of the namespace for the block device you opened\&. For block devices, the ns\-id used can be overridden with the same option\&. +.sp +On success, the structure may be returned in one of several ways depending on the option flags; the structure may be parsed by the program or the raw buffer may be printed to stdout\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the identify namespace identification descriptor structure for the given nsid\&. This is required for the character devices, or overrides the block nsid if given\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +If using the character device or overriding namespace #2: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme ns\-descs /dev/nvme0 \-n 1 +# nvme ns\-descs /dev/nvme0n1 \-n 2 +# nvme ns\-descs /dev/nvme0 \-\-namespace\-id=1 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Have the program return the raw structure in binary: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme ns\-descs /dev/nvme0n1 \-\-raw\-binary > ns_descs\&.raw +# nvme ns\-descs /dev/nvme0n1 \-b > ns_descs\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-ns-descs.html b/Documentation/nvme-ns-descs.html new file mode 100644 index 0000000..9751724 --- /dev/null +++ b/Documentation/nvme-ns-descs.html @@ -0,0 +1,863 @@ + + + + + +nvme-ns-descs(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme ns-descs <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--raw-binary | -b]
+                        [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends an identify for a list of namespace +identification descriptor structures command and provides the result and +returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, the '--namespace-id' option is +mandatory, otherwise it will use the ns-id of the namespace for the block +device you opened. For block devices, the ns-id used can be overridden +with the same option.

+

On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the identify namespace identification descriptor structure + for the given nsid. This is required for the character devices, or + overrides the block nsid if given. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or binary. + Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +If using the character device or overriding namespace #2: +

    +
    +
    +
    # nvme ns-descs /dev/nvme0 -n 1
    +# nvme ns-descs /dev/nvme0n1 -n 2
    +# nvme ns-descs /dev/nvme0 --namespace-id=1
    +
    +
  • +
  • +

    +Have the program return the raw structure in binary: +

    +
    +
    +
    # nvme ns-descs /dev/nvme0n1 --raw-binary > ns_descs.raw
    +# nvme ns-descs /dev/nvme0n1 -b > ns_descs.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-ns-descs.txt b/Documentation/nvme-ns-descs.txt new file mode 100644 index 0000000..8afeba5 --- /dev/null +++ b/Documentation/nvme-ns-descs.txt @@ -0,0 +1,74 @@ +nvme-ns-descs(1) +================ + +NAME +---- +nvme-ns-descs - Send NVMe Identify for a list of Namespace Identification + Descriptor structure, return result and structure + +SYNOPSIS +-------- +[verse] +'nvme ns-descs' [--namespace-id= | -n ] + [--raw-binary | -b] + [--output-format= | -o ] + +DESCRIPTION +----------- +For the NVMe device given, sends an identify for a list of namespace +identification descriptor structures command and provides the result and +returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). +If the character device is given, the `'--namespace-id'` option is +mandatory, otherwise it will use the ns-id of the namespace for the block +device you opened. For block devices, the ns-id used can be overridden +with the same option. + +On success, the structure may be returned in one of several ways depending +on the option flags; the structure may be parsed by the program or the +raw buffer may be printed to stdout. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the identify namespace identification descriptor structure + for the given nsid. This is required for the character devices, or + overrides the block nsid if given. + +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or 'binary'. + Only one output format can be used at a time. + + +EXAMPLES +-------- +* If using the character device or overriding namespace #2: ++ +------------ +# nvme ns-descs /dev/nvme0 -n 1 +# nvme ns-descs /dev/nvme0n1 -n 2 +# nvme ns-descs /dev/nvme0 --namespace-id=1 +------------ ++ + +* Have the program return the raw structure in binary: ++ +------------ +# nvme ns-descs /dev/nvme0n1 --raw-binary > ns_descs.raw +# nvme ns-descs /dev/nvme0n1 -b > ns_descs.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-ns-rescan.1 b/Documentation/nvme-ns-rescan.1 new file mode 100644 index 0000000..5fcf6e8 --- /dev/null +++ b/Documentation/nvme-ns-rescan.1 @@ -0,0 +1,67 @@ +'\" t +.\" Title: nvme-ns-rescan +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-NS\-RESCAN" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-ns-rescan \- Rescans the nvme namespaces\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme ns\-rescan\fR +.fi +.SH "DESCRIPTION" +.sp +Requests NVMe controller rescans the namespaces\&. The param is mandatory and must be an NVMe character device (ex: /dev/nvme0)\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Rescans the nvme namespaces\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme ns\-rescan /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-ns-rescan.html b/Documentation/nvme-ns-rescan.html new file mode 100644 index 0000000..f4b0346 --- /dev/null +++ b/Documentation/nvme-ns-rescan.html @@ -0,0 +1,455 @@ + + + + + +nvme-ns-rescan(1) + + + + +

SYNOPSIS

+
+
+
nvme ns-rescan <device>
+
+
+
+

DESCRIPTION

+
+

Requests NVMe controller rescans the namespaces. The <device> param is mandatory and must +be an NVMe character device (ex: /dev/nvme0).

+
+

OPTIONS

+
+

None

+
+

EXAMPLES

+
+
    +
  • +

    +Rescans the nvme namespaces. +

    +
    +
    +
    # nvme ns-rescan /dev/nvme0
    +
    +
  • +
+
+

NVME

+
+

Part of the nvme-user suite

+
+ + + diff --git a/Documentation/nvme-ns-rescan.txt b/Documentation/nvme-ns-rescan.txt new file mode 100644 index 0000000..cd41870 --- /dev/null +++ b/Documentation/nvme-ns-rescan.txt @@ -0,0 +1,32 @@ +nvme-ns-rescan(1) +================= + +NAME +---- +nvme-ns-rescan - Rescans the nvme namespaces. + +SYNOPSIS +-------- +[verse] +'nvme ns-rescan' + +DESCRIPTION +----------- +Requests NVMe controller rescans the namespaces. The param is mandatory and must +be an NVMe character device (ex: /dev/nvme0). + +OPTIONS +------- +None + +EXAMPLES +-------- +* Rescans the nvme namespaces. ++ +------------ +# nvme ns-rescan /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-read.1 b/Documentation/nvme-read.1 new file mode 100644 index 0000000..ae7faf6 --- /dev/null +++ b/Documentation/nvme-read.1 @@ -0,0 +1,186 @@ +'\" t +.\" Title: nvme-read +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-READ" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-read \- Send an NVMe Read command, provide results +.SH "SYNOPSIS" +.sp +.nf +\fInvme\-read\fR [\-\-start\-block= | \-s ] + [\-\-block\-count= | \-c ] + [\-\-data\-size= | \-z ] + [\-\-metadata\-size= | \-y ] + [\-\-ref\-tag= | \-r ] + [\-\-data= | \-d ] + [\-\-metadata= | \-M ] + [\-\-prinfo= | \-p ] + [\-\-app\-tag\-mask= | \-m ] + [\-\-app\-tag= | \-a ] + [\-\-limited\-retry | \-l] + [\-\-force\-unit\-access | \-f] + [\-\-dir\-type= | \-T ] + [\-\-dir\-spec= | \-S ] + [\-\-dsm= | \-D ] + [\-\-show\-command | \-v] + [\-\-dry\-run | \-w] + [\-\-latency | \-t] +.fi +.SH "DESCRIPTION" +.sp +The Read command reads the logical blocks specified by the command from the medium and copies to the data data buffer provided\&. Will use stdout by default if you don\(cqt provide a file\&. +.SH "OPTIONS" +.PP +\-\-start\-block=, \-s +.RS 4 +Start block\&. +.RE +.PP +\-\-block\-count, \-c +.RS 4 +The number of blocks to transfer\&. This is a zeroes based value to align with the kernel\(cqs use of this field\&. (ie\&. 0 means transfer 1 block)\&. +.RE +.PP +\-\-data\-size=, \-z +.RS 4 +Size of data, in bytes\&. +.RE +.PP +\-\-metadata\-size=, \-y +.RS 4 +Size of metadata in bytes\&. +.RE +.PP +\-\-data=, \-d +.RS 4 +Data file\&. If none provided, contents are sent to STDOUT\&. +.RE +.PP +\-\-metadata=, \-M +.RS 4 +Metadata file, if necessary\&. +.RE +.PP +\-\-prinfo=, \-p +.RS 4 +Protection Information field definition\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Bit +T}:T{ +Description +T} +T{ +3 +T}:T{ +PRACT: Protection Information Action\&. When set to 1, PI is stripped/inserted on read/write when the block format\(cqs metadata size is 8\&. When set to 0, metadata is passes\&. +T} +T{ +2:0 +T}:T{ +PRCHK: Protection Information Check: +T} +T{ +2 +T}:T{ +Set to 1 enables checking the guard tag +T} +T{ +1 +T}:T{ +Set to 1 enables checking the application tag +T} +T{ +0 +T}:T{ +Set to 1 enables checking the reference tag +T} +.TE +.sp 1 +.RE +.PP +\-\-ref\-tag=, \-r +.RS 4 +Optional reftag when used with protection information\&. +.RE +.PP +\-\-app\-tag\-mask=, \-m +.RS 4 +Optional application tag mask when used with protection information\&. +.RE +.PP +\-\-force\-unit\-access, \-f +.RS 4 +Set the force\-unit access flag\&. +.RE +.PP +\-T , \-\-dir\-type= +.RS 4 +Optional directive type\&. The nvme\-cli only enforces the value be in the defined range for the directive type, though the NVMe specifcation (1\&.3a) defines only one directive, 01h, for write stream idenfiers\&. +.RE +.PP +\-S , \-\-dir\-spec= +.RS 4 +Optional field for directive specifics\&. When used with write streams, this value is defined to be the write stream identifier\&. The nvme\-cli will not validate the stream requested is within the controller\(cqs capabilities\&. +.RE +.PP +\-D , \-\-dsm= +.RS 4 +The optional data set management attributes for this command\&. The argument for this is the lower 16 bits of the DSM field in a write command; the upper 16 bits of the field come from the directive specific field, if used\&. This may be used to set attributes for the LBAs being written, like access frequency, type, latency, among other things, as well as yet to be defined types\&. Please consult the NVMe specification for detailed breakdown of how to use this field\&. +.RE +.PP +\-v, \-\-show\-cmd +.RS 4 +Print out the command to be sent\&. +.RE +.PP +\-w, \-\-dry\-run +.RS 4 +Do not actually send the command\&. If want to use \-\-dry\-run option, \-\-show\-cmd option +\fImust\fR +be set\&. Otherwise \-\-dry\-run option will be +\fIignored\fR\&. +.RE +.PP +\-t, \-\-latency +.RS 4 +Print out the latency the IOCTL took (in us)\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-read.html b/Documentation/nvme-read.html new file mode 100644 index 0000000..fdc1606 --- /dev/null +++ b/Documentation/nvme-read.html @@ -0,0 +1,1040 @@ + + + + + + +nvme-read(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme-read <device> [--start-block=<slba> | -s <slba>]
+                        [--block-count=<nlb> | -c <nlb>]
+                        [--data-size=<size> | -z <size>]
+                        [--metadata-size=<size> | -y <size>]
+                        [--ref-tag=<reftag> | -r <reftag>]
+                        [--data=<data-file> | -d <data-file>]
+                        [--metadata=<metadata-file> | -M <metadata-file>]
+                        [--prinfo=<prinfo> | -p <prinfo>]
+                        [--app-tag-mask=<appmask> | -m <appmask>]
+                        [--app-tag=<apptag> | -a <apptag>]
+                        [--limited-retry | -l]
+                        [--force-unit-access | -f]
+                        [--dir-type=<type> | -T <type>]
+                        [--dir-spec=<spec> | -S <spec>]
+                        [--dsm=<dsm> | -D <dsm>]
+                        [--show-command | -v]
+                        [--dry-run | -w]
+                        [--latency | -t]
+
+
+
+
+
+

DESCRIPTION

+
+

The Read command reads the logical blocks specified by the command from +the medium and copies to the data data buffer provided. Will use stdout +by default if you don’t provide a file.

+
+
+
+

OPTIONS

+
+
+
+--start-block=<slba> +
+
+-s <slba> +
+
+

+ Start block. +

+
+
+--block-count +
+
+-c +
+
+

+ The number of blocks to transfer. This is a zeroes based value to + align with the kernel’s use of this field. (ie. 0 means transfer + 1 block). +

+
+
+--data-size=<size> +
+
+-z <size> +
+
+

+ Size of data, in bytes. +

+
+
+--metadata-size=<size> +
+
+-y <size> +
+
+

+ Size of metadata in bytes. +

+
+
+--data=<data-file> +
+
+-d <data-file> +
+
+

+ Data file. If none provided, contents are sent to STDOUT. +

+
+
+--metadata=<metadata-file> +
+
+-M <metadata-file> +
+
+

+ Metadata file, if necessary. +

+
+
+--prinfo=<prinfo> +
+
+-p <prinfo> +
+
+

+ Protection Information field definition. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + +

Bit

Description

3

PRACT: Protection Information Action. When set to 1, PI is stripped/inserted +on read/write when the block format’s metadata size is 8. When set to 0, +metadata is passes.

2:0

PRCHK: Protection Information Check:

2

Set to 1 enables checking the guard tag

1

Set to 1 enables checking the application tag

0

Set to 1 enables checking the reference tag

+
+
+
+--ref-tag=<reftag> +
+
+-r <reftag> +
+
+

+ Optional reftag when used with protection information. +

+
+
+--app-tag-mask=<appmask> +
+
+-m <appmask> +
+
+

+ Optional application tag mask when used with protection information. +

+
+
+--force-unit-access +
+
+-f +
+
+

+ Set the force-unit access flag. +

+
+
+-T <type> +
+
+--dir-type=<type> +
+
+

+ Optional directive type. The nvme-cli only enforces the value + be in the defined range for the directive type, though the NVMe + specifcation (1.3a) defines only one directive, 01h, for write + stream idenfiers. +

+
+
+-S <spec> +
+
+--dir-spec=<spec> +
+
+

+ Optional field for directive specifics. When used with + write streams, this value is defined to be the write stream + identifier. The nvme-cli will not validate the stream requested + is within the controller’s capabilities. +

+
+
+-D <dsm> +
+
+--dsm=<dsm> +
+
+

+ The optional data set management attributes for this command. The + argument for this is the lower 16 bits of the DSM field in a write + command; the upper 16 bits of the field come from the directive + specific field, if used. This may be used to set attributes for + the LBAs being written, like access frequency, type, latency, + among other things, as well as yet to be defined types. Please + consult the NVMe specification for detailed breakdown of how to + use this field. +

+
+
+-v +
+
+--show-cmd +
+
+

+ Print out the command to be sent. +

+
+
+-w +
+
+--dry-run +
+
+

+ Do not actually send the command. If want to use --dry-run option, + --show-cmd option must be set. Otherwise --dry-run option will be + ignored. +

+
+
+-t +
+
+--latency +
+
+

+ Print out the latency the IOCTL took (in us). +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-read.txt b/Documentation/nvme-read.txt new file mode 100644 index 0000000..55a701c --- /dev/null +++ b/Documentation/nvme-read.txt @@ -0,0 +1,137 @@ +nvme-read(1) +============ + +NAME +---- +nvme-read - Send an NVMe Read command, provide results + +SYNOPSIS +-------- +[verse] +'nvme-read' [--start-block= | -s ] + [--block-count= | -c ] + [--data-size= | -z ] + [--metadata-size= | -y ] + [--ref-tag= | -r ] + [--data= | -d ] + [--metadata= | -M ] + [--prinfo= | -p ] + [--app-tag-mask= | -m ] + [--app-tag= | -a ] + [--limited-retry | -l] + [--force-unit-access | -f] + [--dir-type= | -T ] + [--dir-spec= | -S ] + [--dsm= | -D ] + [--show-command | -v] + [--dry-run | -w] + [--latency | -t] + +DESCRIPTION +----------- +The Read command reads the logical blocks specified by the command from +the medium and copies to the data data buffer provided. Will use stdout +by default if you don't provide a file. + +OPTIONS +------- +--start-block=:: +-s :: + Start block. + +--block-count:: +-c:: + The number of blocks to transfer. This is a zeroes based value to + align with the kernel's use of this field. (ie. 0 means transfer + 1 block). + +--data-size=:: +-z :: + Size of data, in bytes. + +--metadata-size=:: +-y :: + Size of metadata in bytes. + +--data=:: +-d :: + Data file. If none provided, contents are sent to STDOUT. + +--metadata=:: +-M :: + Metadata file, if necessary. + +--prinfo=:: +-p :: + Protection Information field definition. ++ +[] +|================= +|Bit|Description +|3|PRACT: Protection Information Action. When set to 1, PI is stripped/inserted +on read/write when the block format's metadata size is 8. When set to 0, +metadata is passes. +|2:0|PRCHK: Protection Information Check: +|2|Set to 1 enables checking the guard tag +|1|Set to 1 enables checking the application tag +|0|Set to 1 enables checking the reference tag +|================= + +--ref-tag=:: +-r :: + Optional reftag when used with protection information. + +--app-tag-mask=:: +-m :: + Optional application tag mask when used with protection information. + +--force-unit-access:: +-f:: + Set the force-unit access flag. + +-T :: +--dir-type=:: + Optional directive type. The nvme-cli only enforces the value + be in the defined range for the directive type, though the NVMe + specifcation (1.3a) defines only one directive, 01h, for write + stream idenfiers. + +-S :: +--dir-spec=:: + Optional field for directive specifics. When used with + write streams, this value is defined to be the write stream + identifier. The nvme-cli will not validate the stream requested + is within the controller's capabilities. + +-D :: +--dsm=:: + The optional data set management attributes for this command. The + argument for this is the lower 16 bits of the DSM field in a write + command; the upper 16 bits of the field come from the directive + specific field, if used. This may be used to set attributes for + the LBAs being written, like access frequency, type, latency, + among other things, as well as yet to be defined types. Please + consult the NVMe specification for detailed breakdown of how to + use this field. + +-v:: +--show-cmd:: + Print out the command to be sent. + +-w:: +--dry-run:: + Do not actually send the command. If want to use --dry-run option, + --show-cmd option _must_ be set. Otherwise --dry-run option will be + _ignored_. + +-t:: +--latency:: + Print out the latency the IOCTL took (in us). + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-reset.1 b/Documentation/nvme-reset.1 new file mode 100644 index 0000000..7b8f3de --- /dev/null +++ b/Documentation/nvme-reset.1 @@ -0,0 +1,67 @@ +'\" t +.\" Title: nvme-reset +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-RESET" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-reset \- Reset the nvme controller\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme reset\fR +.fi +.SH "DESCRIPTION" +.sp +Requests NVMe controller reset\&. The param is mandatory and must be an NVMe character device (ex: /dev/nvme0)\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Resets the controller\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme reset /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-reset.html b/Documentation/nvme-reset.html new file mode 100644 index 0000000..40ac603 --- /dev/null +++ b/Documentation/nvme-reset.html @@ -0,0 +1,801 @@ + + + + + + +nvme-reset(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme reset <device>
+
+
+
+
+
+

DESCRIPTION

+
+

Requests NVMe controller reset. The <device> param is mandatory and must +be an NVMe character device (ex: /dev/nvme0).

+
+
+
+

OPTIONS

+
+

None

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Resets the controller. +

    +
    +
    +
    # nvme reset /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-reset.txt b/Documentation/nvme-reset.txt new file mode 100644 index 0000000..d1a282b --- /dev/null +++ b/Documentation/nvme-reset.txt @@ -0,0 +1,32 @@ +nvme-reset(1) +============= + +NAME +---- +nvme-reset - Reset the nvme controller. + +SYNOPSIS +-------- +[verse] +'nvme reset' + +DESCRIPTION +----------- +Requests NVMe controller reset. The param is mandatory and must +be an NVMe character device (ex: /dev/nvme0). + +OPTIONS +------- +None + +EXAMPLES +-------- +* Resets the controller. ++ +------------ +# nvme reset /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-resv-acquire.1 b/Documentation/nvme-resv-acquire.1 new file mode 100644 index 0000000..f96d127 --- /dev/null +++ b/Documentation/nvme-resv-acquire.1 @@ -0,0 +1,177 @@ +'\" t +.\" Title: nvme-resv-acquire +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-RESV\-ACQUIRE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-resv-acquire \- Acquire an nvme reservation +.SH "SYNOPSIS" +.sp +.nf +\fInvme resv\-acquire\fR [\-\-namespace\-id= | \-n ] + [\-\-crkey= | \-c ] + [\-\-prkey= | \-p ] + [\-\-rtype= | \-t ] + [\-\-racqa= | \-a ] + [\-\-iekey | \-i] +.fi +.SH "DESCRIPTION" +.sp +The Reservation Acquire command is used to acquire a reservation on a namespace, preempt a reservation held on a namespace, and abort a reservation held on a namespace\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Override the nsid field\&. If using the admin character device, this parameter is required\&. +.RE +.PP +\-c , \-\-crkey= +.RS 4 +Current Reservation Key: The field specifies the current reservation key associated with the host\&. If the IEKEY bit is set to \(oq1\(cq in the command, then the CRKEY check succeeds regardless of the value in this field\&. +.RE +.PP +\-p , \-\-prkey= +.RS 4 +Preempt Reservation Key: If the Reservation Acquire Action is set to 001b (i\&.e\&., Preempt) or 010b (i\&.e\&., Preempt and Abort), then this field specifies the reservation key to be unregistered from the namespace\&. For all other Reservation Acquire Action values, this field is reserved\&. +.RE +.PP +\-t , \-\-rtyep= +.RS 4 +Reservation Type: This field specifies the type of reservation to be created\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0h +T}:T{ +Reserved +T} +T{ +1h +T}:T{ +Write Exclusive Reservation +T} +T{ +2h +T}:T{ +Exclusive Access Reservation +T} +T{ +3h +T}:T{ +Write Exclusive \- Registrants Only Reservation +T} +T{ +4h +T}:T{ +Exclusive Access \- Registrants Only Reservation +T} +T{ +5h +T}:T{ +Write Exclusive \- All Registrants Reservation +T} +T{ +6h +T}:T{ +Exclusive Access \- All Registrants Reservation +T} +T{ +07h\-FFh +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-a , \-\-racqa= +.RS 4 +Reservation Acquire Action: This field specifies the action that is performed by the command\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0 +T}:T{ +Acquire +T} +T{ +1 +T}:T{ +Preempt +T} +T{ +2 +T}:T{ +Preempt and Abort +T} +T{ +3\-7 +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-i, \-\-iekey +.RS 4 +Ignore Existing Key: If this bit is set to a +\fI1\fR, then the Current Reservation Key (CRKEY) check is disabled and the command shall succeed regardless of the CRKEY field value\&. +.sp +Indicator option, defaults to +\fI0\fR\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-resv-acquire.html b/Documentation/nvme-resv-acquire.html new file mode 100644 index 0000000..17b3d94 --- /dev/null +++ b/Documentation/nvme-resv-acquire.html @@ -0,0 +1,954 @@ + + + + + +nvme-resv-acquire(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme resv-acquire <device> [--namespace-id=<nsid> | -n <nsid>]
+                             [--crkey=<crkey> | -c <crkey>]
+                             [--prkey=<prkey> | -p <prkey>]
+                             [--rtype=<rtype> | -t <rtype>]
+                             [--racqa=<racqa> | -a <racqa>]
+                             [--iekey | -i]
+
+
+
+
+
+

DESCRIPTION

+
+

The Reservation Acquire command is used to acquire a reservation on +a namespace, preempt a reservation held on a namespace, and abort a +reservation held on a namespace.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Override the nsid field. If using the admin character device, + this parameter is required. +

+
+
+-c <crkey> +
+
+--crkey=<crkey> +
+
+

+ Current Reservation Key: The field specifies the current + reservation key associated with the host. If the IEKEY bit is + set to ‘1’ in the command, then the CRKEY check succeeds + regardless of the value in this field. +

+
+
+-p <prkey> +
+
+--prkey=<prkey> +
+
+

+ Preempt Reservation Key: If the Reservation Acquire Action is set + to 001b (i.e., Preempt) or 010b (i.e., Preempt and Abort), then + this field specifies the reservation key to be unregistered from + the namespace. For all other Reservation Acquire Action values, + this field is reserved. +

+
+
+-t <rtype> +
+
+--rtyep=<rtype> +
+
+

+ Reservation Type: This field specifies the type of reservation + to be created. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0h

Reserved

1h

Write Exclusive Reservation

2h

Exclusive Access Reservation

3h

Write Exclusive - Registrants Only Reservation

4h

Exclusive Access - Registrants Only Reservation

5h

Write Exclusive - All Registrants Reservation

6h

Exclusive Access - All Registrants Reservation

07h-FFh

Reserved

+
+
+
+-a <racqa> +
+
+--racqa=<racqa> +
+
+

+ Reservation Acquire Action: This field specifies the action that + is performed by the command. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0

Acquire

1

Preempt

2

Preempt and Abort

3-7

Reserved

+
+
+
+-i +
+
+--iekey +
+
+

+ Ignore Existing Key: If this bit is set to a 1, then the + Current Reservation Key (CRKEY) check is disabled and the command + shall succeed regardless of the CRKEY field value. +

+

Indicator option, defaults to 0.

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-resv-acquire.txt b/Documentation/nvme-resv-acquire.txt new file mode 100644 index 0000000..41cbf8f --- /dev/null +++ b/Documentation/nvme-resv-acquire.txt @@ -0,0 +1,92 @@ +nvme-resv-acquire(1) +==================== + +NAME +---- +nvme-resv-acquire - Acquire an nvme reservation + +SYNOPSIS +-------- +[verse] +'nvme resv-acquire' [--namespace-id= | -n ] + [--crkey= | -c ] + [--prkey= | -p ] + [--rtype= | -t ] + [--racqa= | -a ] + [--iekey | -i] + +DESCRIPTION +----------- +The Reservation Acquire command is used to acquire a reservation on +a namespace, preempt a reservation held on a namespace, and abort a +reservation held on a namespace. + +OPTIONS +------- +-n :: +--namespace-id=:: + Override the nsid field. If using the admin character device, + this parameter is required. + +-c :: +--crkey=:: + Current Reservation Key: The field specifies the current + reservation key associated with the host. If the IEKEY bit is + set to ‘1’ in the command, then the CRKEY check succeeds + regardless of the value in this field. + +-p :: +--prkey=:: + Preempt Reservation Key: If the Reservation Acquire Action is set + to 001b (i.e., Preempt) or 010b (i.e., Preempt and Abort), then + this field specifies the reservation key to be unregistered from + the namespace. For all other Reservation Acquire Action values, + this field is reserved. + +-t :: +--rtyep=:: + Reservation Type: This field specifies the type of reservation + to be created. ++ +[] +|================= +|Value|Definition +|0h|Reserved +|1h|Write Exclusive Reservation +|2h|Exclusive Access Reservation +|3h|Write Exclusive - Registrants Only Reservation +|4h|Exclusive Access - Registrants Only Reservation +|5h|Write Exclusive - All Registrants Reservation +|6h|Exclusive Access - All Registrants Reservation +|07h-FFh|Reserved +|================= + +-a :: +--racqa=:: + Reservation Acquire Action: This field specifies the action that + is performed by the command. ++ +[] +|================= +|Value|Definition +|0|Acquire +|1|Preempt +|2|Preempt and Abort +|3-7|Reserved +|================= + +-i:: +--iekey:: + Ignore Existing Key: If this bit is set to a '1', then the + Current Reservation Key (CRKEY) check is disabled and the command + shall succeed regardless of the CRKEY field value. ++ +Indicator option, defaults to '0'. + +EXAMPLES +-------- +No examples yet + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-resv-register.1 b/Documentation/nvme-resv-register.1 new file mode 100644 index 0000000..4a50513 --- /dev/null +++ b/Documentation/nvme-resv-register.1 @@ -0,0 +1,153 @@ +'\" t +.\" Title: nvme-resv-register +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-RESV\-REGISTER" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-resv-register \- Register an nvme reservation +.SH "SYNOPSIS" +.sp +.nf +\fInvme resv\-register\fR [\-\-namespace\-id= | \-n ] + [\-\-crkey= | \-c ] + [\-\-nrkey= | \-k ] + [\-\-rrega= | \-r ] + [\-\-cptpl= | \-p ] + [\-\-iekey | \-i] +.fi +.SH "DESCRIPTION" +.sp +The Reservation Register command is used to register, unregister, or replace a reservation key\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Override the nsid field\&. If using the admin character device, this parameter is required\&. +.RE +.PP +\-c , \-\-crkey= +.RS 4 +Current Reservation Key: If the Reservation Register Action is 001b (i\&.e\&., Unregister Reservation Key) or 010b (i\&.e\&., Replace Reservation Key), then this field contains the current reservation key associated with the host\&. For all other Reservation Register Action values, this field is reserved\&. The controller ignores the value of this field when the Ignore Existing Key (IEKEY) bit is set to \(oq1\(cq\&. +.RE +.PP +\-k , \-\-nrkey= +.RS 4 +New Reservation Key: If the Reservation Register Action is 000b (i\&.e\&., Register Reservation Key) or 010b (i\&.e\&., Replace Reservation Key), then this field contains the new reservation key associated with the host\&. For all other Reservation Register Action values, this field is reserved\&. +.RE +.PP +\-p , \-\-cptpl= +.RS 4 +Change Persist Through Power Loss State: This field allows the Persist Through Power Loss state associated with the namespace to be modified as a side effect of processing this command\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0 +T}:T{ +No change to PTPL state +T} +T{ +1 +T}:T{ +Reserved +T} +T{ +2 +T}:T{ +Set PTPL state to \(oq0\(cq\&. Reservations are released and registrants are cleared on a power on\&. +T} +T{ +3 +T}:T{ +Set PTPL state to \(oq1\(cq\&. Reservations and registrants persist across a power loss\&. +T} +.TE +.sp 1 +.RE +.PP +\-a , \-\-rrega= +.RS 4 +Reservation Register Action: This field specifies the registration action that is performed by the command\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0 +T}:T{ +Register Reservation Key +T} +T{ +1 +T}:T{ +Unregister Reservation Key +T} +T{ +2 +T}:T{ +Replace Reservation Key +T} +T{ +3\-7 +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-i, \-\-iekey +.RS 4 +Ignore Existing Key: If this bit is set to a +\fI1\fR, then the Current Reservation Key (CRKEY) check is disabled and the command shall succeed regardless of the CRKEY field value\&. +.sp +Indicator option, defaults to +\fI0\fR\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-resv-register.html b/Documentation/nvme-resv-register.html new file mode 100644 index 0000000..a17f869 --- /dev/null +++ b/Documentation/nvme-resv-register.html @@ -0,0 +1,944 @@ + + + + + + +nvme-resv-register(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme resv-register <device> [--namespace-id=<nsid> | -n <nsid>]
+                              [--crkey=<crkey> | -c <crkey>]
+                              [--nrkey=<nrkey> | -k <nrkey>]
+                              [--rrega=<rrega> | -r <rrega>]
+                              [--cptpl=<cptpl> | -p <cptpl>]
+                              [--iekey | -i]
+
+
+
+
+
+

DESCRIPTION

+
+

The Reservation Register command is used to register, unregister, or +replace a reservation key.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Override the nsid field. If using the admin character device, + this parameter is required. +

+
+
+-c <crkey> +
+
+--crkey=<crkey> +
+
+

+ Current Reservation Key: If the Reservation Register Action is + 001b (i.e., Unregister Reservation Key) or 010b (i.e., Replace + Reservation Key), then this field contains the current reservation + key associated with the host. For all other Reservation Register + Action values, this field is reserved. The controller ignores + the value of this field when the Ignore Existing Key (IEKEY) + bit is set to ‘1’. +

+
+
+-k <nrkey> +
+
+--nrkey=<nrkey> +
+
+

+ New Reservation Key: If the Reservation Register Action is + 000b (i.e., Register Reservation Key) or 010b (i.e., Replace + Reservation Key), then this field contains the new reservation + key associated with the host. For all other Reservation Register + Action values, this field is reserved. +

+
+
+-p <cptpl> +
+
+--cptpl=<cptpl> +
+
+

+ Change Persist Through Power Loss State: This field allows the + Persist Through Power Loss state associated with the namespace + to be modified as a side effect of processing this command. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0

No change to PTPL state

1

Reserved

2

Set PTPL state to ‘0’. Reservations are released and registrants +are cleared on a power on.

3

Set PTPL state to ‘1’. Reservations and registrants persist across +a power loss.

+
+
+
+-a <rrega> +
+
+--rrega=<rrega> +
+
+

+ Reservation Register Action: This field specifies the registration + action that is performed by the command. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0

Register Reservation Key

1

Unregister Reservation Key

2

Replace Reservation Key

3-7

Reserved

+
+
+
+-i +
+
+--iekey +
+
+

+ Ignore Existing Key: If this bit is set to a 1, then the + Current Reservation Key (CRKEY) check is disabled and the command + shall succeed regardless of the CRKEY field value. +

+

Indicator option, defaults to 0.

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-resv-register.txt b/Documentation/nvme-resv-register.txt new file mode 100644 index 0000000..076e979 --- /dev/null +++ b/Documentation/nvme-resv-register.txt @@ -0,0 +1,93 @@ +nvme-resv-register(1) +===================== + +NAME +---- +nvme-resv-register - Register an nvme reservation + +SYNOPSIS +-------- +[verse] +'nvme resv-register' [--namespace-id= | -n ] + [--crkey= | -c ] + [--nrkey= | -k ] + [--rrega= | -r ] + [--cptpl= | -p ] + [--iekey | -i] + +DESCRIPTION +----------- +The Reservation Register command is used to register, unregister, or +replace a reservation key. + +OPTIONS +------- +-n :: +--namespace-id=:: + Override the nsid field. If using the admin character device, + this parameter is required. + +-c :: +--crkey=:: + Current Reservation Key: If the Reservation Register Action is + 001b (i.e., Unregister Reservation Key) or 010b (i.e., Replace + Reservation Key), then this field contains the current reservation + key associated with the host. For all other Reservation Register + Action values, this field is reserved. The controller ignores + the value of this field when the Ignore Existing Key (IEKEY) + bit is set to ‘1’. + +-k :: +--nrkey=:: + New Reservation Key: If the Reservation Register Action is + 000b (i.e., Register Reservation Key) or 010b (i.e., Replace + Reservation Key), then this field contains the new reservation + key associated with the host. For all other Reservation Register + Action values, this field is reserved. + +-p :: +--cptpl=:: + Change Persist Through Power Loss State: This field allows the + Persist Through Power Loss state associated with the namespace + to be modified as a side effect of processing this command. ++ +[] +|================= +|Value|Definition +|0|No change to PTPL state +|1|Reserved +|2|Set PTPL state to ‘0’. Reservations are released and registrants +are cleared on a power on. +|3|Set PTPL state to ‘1’. Reservations and registrants persist across +a power loss. +|================= + +-a :: +--rrega=:: + Reservation Register Action: This field specifies the registration + action that is performed by the command. ++ +[] +|================= +|Value|Definition +|0|Register Reservation Key +|1|Unregister Reservation Key +|2|Replace Reservation Key +|3-7|Reserved +|================= + +-i:: +--iekey:: + Ignore Existing Key: If this bit is set to a '1', then the + Current Reservation Key (CRKEY) check is disabled and the command + shall succeed regardless of the CRKEY field value. ++ +Indicator option, defaults to '0'. + +EXAMPLES +-------- +No examples yet + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-resv-release.1 b/Documentation/nvme-resv-release.1 new file mode 100644 index 0000000..1817e51 --- /dev/null +++ b/Documentation/nvme-resv-release.1 @@ -0,0 +1,165 @@ +'\" t +.\" Title: nvme-resv-release +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-RESV\-RELEASE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-resv-release \- Release an nvme reservation +.SH "SYNOPSIS" +.sp +.nf +\fInvme resv\-release\fR [\-\-namespace\-id= | \-n ] + [\-\-crkey= | \-c ] + [\-\-rtype= | \-t ] + [\-\-rrela= | \-a ] + [\-\-iekey | \-i] +.fi +.SH "DESCRIPTION" +.sp +The Reservation Release command is used to release or clear a reservation held on a namespace\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Override the nsid field\&. If using the admin character device, this parameter is required\&. +.RE +.PP +\-c , \-\-crkey= +.RS 4 +Current Reservation Key: If the Reservation Register Action is 001b (i\&.e\&., Unregister Reservation Key) or 010b (i\&.e\&., Replace Reservation Key), then this field contains the current reservation key associated with the host\&. For all other Reservation Register Action values, this field is reserved\&. The controller ignores the value of this field when the Ignore Existing Key (IEKEY) bit is set to \(oq1\(cq\&. +.RE +.PP +\-t , \-\-rtyep= +.RS 4 +Reservation Type: This field specifies the type of reservation to be created\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0h +T}:T{ +Reserved +T} +T{ +1h +T}:T{ +Write Exclusive Reservation +T} +T{ +2h +T}:T{ +Exclusive Access Reservation +T} +T{ +3h +T}:T{ +Write Exclusive \- Registrants Only Reservation +T} +T{ +4h +T}:T{ +Exclusive Access \- Registrants Only Reservation +T} +T{ +5h +T}:T{ +Write Exclusive \- All Registrants Reservation +T} +T{ +6h +T}:T{ +Exclusive Access \- All Registrants Reservation +T} +T{ +07h\-FFh +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-a , \-\-rrela= +.RS 4 +Reservation Release Action: This field specifies the registration action that is performed by the command\&. +.TS +allbox tab(:); +lt lt +lt lt +lt lt +lt lt. +T{ +Value +T}:T{ +Definition +T} +T{ +0 +T}:T{ +Release +T} +T{ +1 +T}:T{ +Clear +T} +T{ +2\-7 +T}:T{ +Reserved +T} +.TE +.sp 1 +.RE +.PP +\-i, \-\-iekey +.RS 4 +Ignore Existing Key: If this bit is set to a +\fI1\fR, then the Current Reservation Key (CRKEY) check is disabled and the command shall succeed regardless of the CRKEY field value\&. +.sp +Indicator option, defaults to +\fI0\fR\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-resv-release.html b/Documentation/nvme-resv-release.html new file mode 100644 index 0000000..884dc78 --- /dev/null +++ b/Documentation/nvme-resv-release.html @@ -0,0 +1,937 @@ + + + + + + +nvme-resv-release(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme resv-release <device> [--namespace-id=<nsid> | -n <nsid>]
+                             [--crkey=<crkey> | -c <crkey>]
+                             [--rtype=<rtype> | -t <rtype>]
+                             [--rrela=<rrela> | -a <rrela>]
+                             [--iekey | -i]
+
+
+
+
+
+

DESCRIPTION

+
+

The Reservation Release command is used to release or clear a reservation +held on a namespace.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Override the nsid field. If using the admin character device, + this parameter is required. +

+
+
+-c <crkey> +
+
+--crkey=<crkey> +
+
+

+ Current Reservation Key: If the Reservation Register Action is + 001b (i.e., Unregister Reservation Key) or 010b (i.e., Replace + Reservation Key), then this field contains the current reservation + key associated with the host. For all other Reservation Register + Action values, this field is reserved. The controller ignores + the value of this field when the Ignore Existing Key (IEKEY) + bit is set to ‘1’. +

+
+
+-t <rtype> +
+
+--rtyep=<rtype> +
+
+

+ Reservation Type: This field specifies the type of reservation + to be created. +

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Value

Definition

0h

Reserved

1h

Write Exclusive Reservation

2h

Exclusive Access Reservation

3h

Write Exclusive - Registrants Only Reservation

4h

Exclusive Access - Registrants Only Reservation

5h

Write Exclusive - All Registrants Reservation

6h

Exclusive Access - All Registrants Reservation

07h-FFh

Reserved

+
+
+
+-a <rrela> +
+
+--rrela=<rrela> +
+
+

+ Reservation Release Action: This field specifies the registration + action that is performed by the command. +

+
+ +++ + + + + + + + + + + + + + + + + + +

Value

Definition

0

Release

1

Clear

2-7

Reserved

+
+
+
+-i +
+
+--iekey +
+
+

+ Ignore Existing Key: If this bit is set to a 1, then the + Current Reservation Key (CRKEY) check is disabled and the command + shall succeed regardless of the CRKEY field value. +

+

Indicator option, defaults to 0.

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-resv-release.txt b/Documentation/nvme-resv-release.txt new file mode 100644 index 0000000..a6a895e --- /dev/null +++ b/Documentation/nvme-resv-release.txt @@ -0,0 +1,84 @@ +nvme-resv-release(1) +==================== + +NAME +---- +nvme-resv-release - Release an nvme reservation + +SYNOPSIS +-------- +[verse] +'nvme resv-release' [--namespace-id= | -n ] + [--crkey= | -c ] + [--rtype= | -t ] + [--rrela= | -a ] + [--iekey | -i] + +DESCRIPTION +----------- +The Reservation Release command is used to release or clear a reservation +held on a namespace. + +OPTIONS +------- +-n :: +--namespace-id=:: + Override the nsid field. If using the admin character device, + this parameter is required. + +-c :: +--crkey=:: + Current Reservation Key: If the Reservation Register Action is + 001b (i.e., Unregister Reservation Key) or 010b (i.e., Replace + Reservation Key), then this field contains the current reservation + key associated with the host. For all other Reservation Register + Action values, this field is reserved. The controller ignores + the value of this field when the Ignore Existing Key (IEKEY) + bit is set to ‘1’. + +-t :: +--rtyep=:: + Reservation Type: This field specifies the type of reservation + to be created. ++ +[] +|================= +|Value|Definition +|0h|Reserved +|1h|Write Exclusive Reservation +|2h|Exclusive Access Reservation +|3h|Write Exclusive - Registrants Only Reservation +|4h|Exclusive Access - Registrants Only Reservation +|5h|Write Exclusive - All Registrants Reservation +|6h|Exclusive Access - All Registrants Reservation +|07h-FFh|Reserved +|================= + +-a :: +--rrela=:: + Reservation Release Action: This field specifies the registration + action that is performed by the command. ++ +[] +|================= +|Value|Definition +|0|Release +|1|Clear +|2-7|Reserved +|================= + +-i:: +--iekey:: + Ignore Existing Key: If this bit is set to a '1', then the + Current Reservation Key (CRKEY) check is disabled and the command + shall succeed regardless of the CRKEY field value. ++ +Indicator option, defaults to '0'. + +EXAMPLES +-------- +No examples yet + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-resv-report.1 b/Documentation/nvme-resv-report.1 new file mode 100644 index 0000000..7242f3a --- /dev/null +++ b/Documentation/nvme-resv-report.1 @@ -0,0 +1,80 @@ +'\" t +.\" Title: nvme-resv-report +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-RESV\-REPORT" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-resv-report \- Send NVMe Reservation Report, parse the result +.SH "SYNOPSIS" +.sp +.nf +\fInvme resv\-report\fR [\-\-namespace\-id= | \-n ] + [\-\-numd= | \-d ] + [\-\-cdw11= | \-c ] + [\-\-raw\-binary | \-b] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +The Reservation Report command returns a Reservation Status data structure to host memory that describes the registration and reservation status of a namespace\&. +.sp +The size of the Reservation Status data structure is a function of the number of controllers in the NVM Subsystem that are associated with hosts that are registrants of the namespace (i\&.e\&., there is a Registered Controller data structure for each such controller)\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the reservation report structure for the given nsid\&. This is required for the character devices, or overrides the block nsid if given\&. +.RE +.PP +\-d , \-\-numd= +.RS 4 +Specify the number of Dwords of the Reservation Status structure to transfer\&. Defaults to 4k\&. +.RE +.PP +\-c , \-\-cdw11= +.RS 4 +The value for command dword 11\&. Setting bit 0 specifies that the controller returns the Extended Data Structure\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +No examples yet\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-resv-report.html b/Documentation/nvme-resv-report.html new file mode 100644 index 0000000..d34e6da --- /dev/null +++ b/Documentation/nvme-resv-report.html @@ -0,0 +1,861 @@ + + + + + +nvme-resv-report(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme resv-report <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--numd=<num-dwords> | -d <num-dwords>]
+                        [--cdw11=<cdw11> | -c <cdw11>]
+                        [--raw-binary | -b]
+                        [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

The Reservation Report command returns a Reservation Status data structure +to host memory that describes the registration and reservation status +of a namespace.

+

The size of the Reservation Status data structure is a function of the +number of controllers in the NVM Subsystem that are associated with +hosts that are registrants of the namespace (i.e., there is a Registered +Controller data structure for each such controller).

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the reservation report structure for the given nsid. This + is required for the character devices, or overrides the block nsid + if given. +

+
+
+-d <num-dwords> +
+
+--numd=<num-dwords> +
+
+

+ Specify the number of Dwords of the Reservation Status structure + to transfer. Defaults to 4k. +

+
+
+-c <cdw11> +
+
+--cdw11=<cdw11> +
+
+

+ The value for command dword 11. Setting bit 0 specifies that the + controller returns the Extended Data Structure. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples yet.

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-resv-report.txt b/Documentation/nvme-resv-report.txt new file mode 100644 index 0000000..b53c141 --- /dev/null +++ b/Documentation/nvme-resv-report.txt @@ -0,0 +1,63 @@ +nvme-resv-report(1) +=================== + +NAME +---- +nvme-resv-report - Send NVMe Reservation Report, parse the result + +SYNOPSIS +-------- +[verse] +'nvme resv-report' [--namespace-id= | -n ] + [--numd= | -d ] + [--cdw11= | -c ] + [--raw-binary | -b] + [--output-format= | -o ] + +DESCRIPTION +----------- +The Reservation Report command returns a Reservation Status data structure +to host memory that describes the registration and reservation status +of a namespace. + +The size of the Reservation Status data structure is a function of the +number of controllers in the NVM Subsystem that are associated with +hosts that are registrants of the namespace (i.e., there is a Registered +Controller data structure for each such controller). + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the reservation report structure for the given nsid. This + is required for the character devices, or overrides the block nsid + if given. + +-d :: +--numd=:: + Specify the number of Dwords of the Reservation Status structure + to transfer. Defaults to 4k. + +-c :: +--cdw11=:: + The value for command dword 11. Setting bit 0 specifies that the + controller returns the Extended Data Structure. + +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + + +EXAMPLES +-------- +No examples yet. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-sanitize-log.1 b/Documentation/nvme-sanitize-log.1 new file mode 100644 index 0000000..72787c7 --- /dev/null +++ b/Documentation/nvme-sanitize-log.1 @@ -0,0 +1,144 @@ +'\" t +.\" Title: nvme-sanitize-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SANITIZE\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-sanitize-log \- Send NVMe sanitize\-log Command, return result +.SH "SYNOPSIS" +.sp +.nf +\fInvme sanitize\-log\fR [\-\-output\-format= | \-o ] + [\-\-human\-readable | \-H] + [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Sanitize log page from an NVMe device and provides the status of sanitize command\&. +.sp +The parameter is mandatory NVMe character device (ex: /dev/nvme0)\&. +.sp +Expected status and description :\- +.TS +allbox tab(:); +ltB ltB. +T{ +Status Code +T}:T{ +Description +T} +.T& +lt lt +lt lt +lt lt +lt lt +lt lt. +T{ +.sp +0x0000 +T}:T{ +.sp +NVM subsystem has never been sanitized\&. +T} +T{ +.sp +0x0001 +T}:T{ +.sp +The most recent sanitize operation completed successfully\&. +T} +T{ +.sp +0x0002 +T}:T{ +.sp +A sanitize operation is currently in progress\&. +T} +T{ +.sp +0x0003 +T}:T{ +.sp +The most recent sanitize operation failed\&. +T} +T{ +.sp +0x0100 +T}:T{ +.sp +Global Data Erased bit If set to 1 then non\-volatile storage in the NVM subsystem has not been written to: a) since being manufactured and the NVM subsystem has never been sanitized; or b) since the most recent successful sanitize operation\&. If cleared to 0, then non\-volatile storage in the NVM subsystem has been written to: a) since being manufactured and the NVM subsystem has never been sanitized; or b) since the most recent successful sanitize operation of the NVM subsystem\&. +T} +.TE +.sp 1 +.sp +Sanitize Progress \- percentage complete +.sp +On success it returns 0, error code otherwise\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.PP +\-H, \-\-human\-readable +.RS 4 +This option will parse and format many of the bit fields into human\-readable formats\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Structure is not parsed by program\&. This overrides the vendor specific and human readable options\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program issue Sanitize\-log Command : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme sanitize\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite\&. diff --git a/Documentation/nvme-sanitize-log.html b/Documentation/nvme-sanitize-log.html new file mode 100644 index 0000000..d369a10 --- /dev/null +++ b/Documentation/nvme-sanitize-log.html @@ -0,0 +1,888 @@ + + + + + + +nvme-sanitize-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme sanitize-log <device> [--output-format=<fmt> | -o <fmt>]
+                             [--human-readable | -H]
+                             [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Sanitize log page from an NVMe device and provides the +status of sanitize command.

+

The <device> parameter is mandatory NVMe character device (ex: /dev/nvme0).

+

Expected status and description :-

+
+ +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status Code Description

0x0000

NVM subsystem has never been sanitized.

0x0001

The most recent sanitize operation completed successfully.

0x0002

A sanitize operation is currently in progress.

0x0003

The most recent sanitize operation failed.

0x0100

Global Data Erased bit +If set to 1 then non-volatile storage in the NVM subsystem has +not been written to: + a) since being manufactured and the NVM subsystem has never been sanitized; or + b) since the most recent successful sanitize operation. +If cleared to 0, then non-volatile storage in the NVM subsystem has been written to: + a) since being manufactured and the NVM subsystem has never been sanitized; or + b) since the most recent successful sanitize operation of the NVM subsystem.

+
+

Sanitize Progress - percentage complete

+

On success it returns 0, error code otherwise.

+
+
+
+

OPTIONS

+
+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+-H +
+
+--human-readable +
+
+

+ This option will parse and format many of the bit fields + into human-readable formats. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program issue Sanitize-log Command : +

    +
    +
    +
    # nvme sanitize-log /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite.

+
+
+
+

+ + + diff --git a/Documentation/nvme-sanitize-log.txt b/Documentation/nvme-sanitize-log.txt new file mode 100644 index 0000000..3c3b73e --- /dev/null +++ b/Documentation/nvme-sanitize-log.txt @@ -0,0 +1,82 @@ +nvme-sanitize-log(1) +==================== + +NAME +---- +nvme-sanitize-log - Send NVMe sanitize-log Command, return result + +SYNOPSIS +-------- +[verse] +'nvme sanitize-log' [--output-format= | -o ] + [--human-readable | -H] + [--raw-binary | -b] + +DESCRIPTION +----------- +Retrieves the NVMe Sanitize log page from an NVMe device and provides the +status of sanitize command. + +The parameter is mandatory NVMe character device (ex: /dev/nvme0). + +Expected status and description :- + +[cols="2*", options="header"] +|=== +|Status Code |Description + +|0x0000 +|NVM subsystem has never been sanitized. + +|0x0001 +|The most recent sanitize operation completed successfully. + +|0x0002 +|A sanitize operation is currently in progress. + +|0x0003 +|The most recent sanitize operation failed. + +|0x0100 +|Global Data Erased bit +If set to 1 then non-volatile storage in the NVM subsystem has +not been written to: + a) since being manufactured and the NVM subsystem has never been sanitized; or + b) since the most recent successful sanitize operation. +If cleared to 0, then non-volatile storage in the NVM subsystem has been written to: + a) since being manufactured and the NVM subsystem has never been sanitized; or + b) since the most recent successful sanitize operation of the NVM subsystem. +|=== + +Sanitize Progress - percentage complete + +On success it returns 0, error code otherwise. + +OPTIONS +------- +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +-H:: +--human-readable:: + This option will parse and format many of the bit fields + into human-readable formats. + +-b:: +--raw-binary:: + Print the raw buffer to stdout. Structure is not parsed by + program. This overrides the vendor specific and human readable options. + +EXAMPLES +-------- +* Has the program issue Sanitize-log Command : ++ +------------ +# nvme sanitize-log /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite. diff --git a/Documentation/nvme-sanitize.1 b/Documentation/nvme-sanitize.1 new file mode 100644 index 0000000..85d2bd4 --- /dev/null +++ b/Documentation/nvme-sanitize.1 @@ -0,0 +1,105 @@ +'\" t +.\" Title: nvme-sanitize +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SANITIZE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-sanitize \- Send NVMe Sanitize Command, return result +.SH "SYNOPSIS" +.sp +.nf +\fInvme sanitize\fR [\-\-no\-dealloc | \-d] + [\-\-oipbp | \-i] + [\-\-owpass= | \-n ] + [\-\-ause | \-u] + [\-\-sanact= | \-a ] + [\-\-ovrpat= | \-p ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends a Sanitize command and provides the result\&. +.sp +The parameter is mandatory NVMe character device (ex: /dev/nvme0)\&. +.sp +On success it returns 0, error code otherwise\&. +.SH "OPTIONS" +.PP +\-d, \-\-no\-delloc +.RS 4 +No Deallocate After Sanitize: If set, then the controller shall not deallocate any logical blocks as a result of successfully completing the sanitize operation\&. If cleared, then the controller should deallocate logical blocks as a result of successfully completing the sanitize operation\&. This bit shall be ignored if the Sanitize Action field is set to 001b (i\&.e\&., Exit Failure Mode)\&. +.RE +.PP +\-i, \-\-oipbp +.RS 4 +Overwrite Invert Pattern Between Passes: If set, then the Overwrite Pattern shall be inverted between passes\&. If cleared, then the overwrite pattern shall not be inverted between passes\&. This bit shall be ignored unless the Sanitize Action field is set to 011b (i\&.e\&., Overwrite)\&. +.RE +.PP +\-n , \-\-owpass= +.RS 4 +Overwrite Pass Count: This field specifies the number of overwrite passes (i\&.e\&., how many times the media is to be overwritten) using the data from the Overwrite Pattern field of this command\&. A value of 0 specifies 16 overwrite passes\&. This field shall be ignored unless the Sanitize Action field is set to 011b (i\&.e\&., Overwrite)\&. +.RE +.PP +\-u, \-\-ause +.RS 4 +Allow Unrestricted Sanitize Exit: If set, then the sanitize operation is performed in unrestricted completion mode\&. If cleared then the sanitize operation is performed in restricted completion mode\&. This bit shall be ignored if the Sanitize Action field is set to 001b (i\&.e\&., Exit Failure Mode)\&. +.RE +.PP +\-a , \-\-sanact= +.RS 4 +Sanitize Action: 000b \- Reserved 001b \- Exit Failure Mode 010b \- Start a Block Erase sanitize operation 011b \- Start an Overwrite sanitize operation 100b \- Start a Crypto Erase sanitize operation +.RE +.PP +\-p , \-\-ovrpat= +.RS 4 +Overwrite Pattern: This field is ignored unless the Sanitize Action field in Command Dword 10 is set to 011b (i\&.e\&., Overwrite)\&. This field specifies a 32\-bit pattern that is used for the Overwrite sanitize operation\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Has the program issue Sanitize Command : +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme sanitize /dev/nvme0n1 \-a 0x02 +# nvme sanitize /dev/nvme0n1 \-\-sanact=0x01 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite\&. diff --git a/Documentation/nvme-sanitize.html b/Documentation/nvme-sanitize.html new file mode 100644 index 0000000..9870cbc --- /dev/null +++ b/Documentation/nvme-sanitize.html @@ -0,0 +1,903 @@ + + + + + +nvme-sanitize(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme sanitize <device> [--no-dealloc | -d]
+              [--oipbp | -i]
+              [--owpass=<overwrite-pass-count> | -n <overwrite-pass-count>]
+              [--ause | -u]
+              [--sanact=<action> | -a <action>]
+              [--ovrpat=<overwrite-pattern> | -p <overwrite-pattern>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends a Sanitize command and +provides the result.

+

The <device> parameter is mandatory NVMe character device (ex: /dev/nvme0).

+

On success it returns 0, error code otherwise.

+
+
+
+

OPTIONS

+
+
+
+-d +
+
+--no-delloc +
+
+

+ No Deallocate After Sanitize: + If set, then the controller shall not deallocate any logical + blocks as a result of successfully completing the sanitize + operation. If cleared, then the controller should deallocate + logical blocks as a result of successfully completing the + sanitize operation. This bit shall be ignored if the Sanitize + Action field is set to 001b (i.e., Exit Failure Mode). +

+
+
+-i +
+
+--oipbp +
+
+

+ Overwrite Invert Pattern Between Passes: + If set, then the Overwrite Pattern shall be inverted between + passes. If cleared, then the overwrite pattern shall not be + inverted between passes. This bit shall be ignored unless the + Sanitize Action field is set to 011b (i.e., Overwrite). +

+
+
+-n <overwrite-pass-count> +
+
+--owpass=<overwrite-pass-count> +
+
+

+ Overwrite Pass Count: + This field specifies the number of overwrite passes (i.e., + how many times the media is to be overwritten) using the data + from the Overwrite Pattern field of this command. A value of 0 + specifies 16 overwrite passes. This field shall be ignored + unless the Sanitize Action field is set to 011b (i.e., Overwrite). +

+
+
+-u +
+
+--ause +
+
+

+ Allow Unrestricted Sanitize Exit: + If set, then the sanitize operation is performed in unrestricted + completion mode. If cleared then the sanitize operation is + performed in restricted completion mode. This bit shall be ignored + if the Sanitize Action field is set to 001b (i.e., Exit Failure Mode). +

+
+
+-a <action> +
+
+--sanact=<action> +
+
+

+ Sanitize Action: + 000b - Reserved + 001b - Exit Failure Mode + 010b - Start a Block Erase sanitize operation + 011b - Start an Overwrite sanitize operation + 100b - Start a Crypto Erase sanitize operation +

+
+
+-p <overwrite-pattern> +
+
+--ovrpat=<overwrite-pattern> +
+
+

+ Overwrite Pattern: + This field is ignored unless the Sanitize Action field in + Command Dword 10 is set to 011b (i.e., Overwrite). This field + specifies a 32-bit pattern that is used for the Overwrite + sanitize operation. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Has the program issue Sanitize Command : +

    +
    +
    +
    # nvme sanitize /dev/nvme0n1 -a 0x02
    +# nvme sanitize /dev/nvme0n1 --sanact=0x01
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite.

+
+
+
+

+ + + diff --git a/Documentation/nvme-sanitize.txt b/Documentation/nvme-sanitize.txt new file mode 100644 index 0000000..b1d9a0e --- /dev/null +++ b/Documentation/nvme-sanitize.txt @@ -0,0 +1,93 @@ +nvme-sanitize(1) +================ + +NAME +---- +nvme-sanitize - Send NVMe Sanitize Command, return result + +SYNOPSIS +-------- +[verse] +'nvme sanitize' [--no-dealloc | -d] + [--oipbp | -i] + [--owpass= | -n ] + [--ause | -u] + [--sanact= | -a ] + [--ovrpat= | -p ] + +DESCRIPTION +----------- +For the NVMe device given, sends a Sanitize command and +provides the result. + +The parameter is mandatory NVMe character device (ex: /dev/nvme0). + +On success it returns 0, error code otherwise. + +OPTIONS +------- +-d:: +--no-delloc:: + No Deallocate After Sanitize: + If set, then the controller shall not deallocate any logical + blocks as a result of successfully completing the sanitize + operation. If cleared, then the controller should deallocate + logical blocks as a result of successfully completing the + sanitize operation. This bit shall be ignored if the Sanitize + Action field is set to 001b (i.e., Exit Failure Mode). + +-i:: +--oipbp:: + Overwrite Invert Pattern Between Passes: + If set, then the Overwrite Pattern shall be inverted between + passes. If cleared, then the overwrite pattern shall not be + inverted between passes. This bit shall be ignored unless the + Sanitize Action field is set to 011b (i.e., Overwrite). + +-n :: +--owpass=:: + Overwrite Pass Count: + This field specifies the number of overwrite passes (i.e., + how many times the media is to be overwritten) using the data + from the Overwrite Pattern field of this command. A value of 0 + specifies 16 overwrite passes. This field shall be ignored + unless the Sanitize Action field is set to 011b (i.e., Overwrite). + +-u:: +--ause:: + Allow Unrestricted Sanitize Exit: + If set, then the sanitize operation is performed in unrestricted + completion mode. If cleared then the sanitize operation is + performed in restricted completion mode. This bit shall be ignored + if the Sanitize Action field is set to 001b (i.e., Exit Failure Mode). + +-a :: +--sanact=:: + Sanitize Action: + 000b - Reserved + 001b - Exit Failure Mode + 010b - Start a Block Erase sanitize operation + 011b - Start an Overwrite sanitize operation + 100b - Start a Crypto Erase sanitize operation + +-p :: +--ovrpat=:: + Overwrite Pattern: + This field is ignored unless the Sanitize Action field in + Command Dword 10 is set to 011b (i.e., Overwrite). This field + specifies a 32-bit pattern that is used for the Overwrite + sanitize operation. + +EXAMPLES +-------- +* Has the program issue Sanitize Command : ++ +------------ +# nvme sanitize /dev/nvme0n1 -a 0x02 +# nvme sanitize /dev/nvme0n1 --sanact=0x01 + +------------ + +NVME +---- +Part of the nvme-user suite. diff --git a/Documentation/nvme-security-recv.1 b/Documentation/nvme-security-recv.1 new file mode 100644 index 0000000..df47abb --- /dev/null +++ b/Documentation/nvme-security-recv.1 @@ -0,0 +1,91 @@ +'\" t +.\" Title: nvme-security-recv +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SECURITY\-RECV" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-security-recv \- Security Recv command +.SH "SYNOPSIS" +.sp +.nf +\fInvme security\-recv\fR [\-\-size= | \-x ] + [\-\-secp= | \-p ] + [\-\-spsp= | \-s ] + [\-\-nssf= | \-N ] + [\-\-al= | \-t ] + [\-\-namespace\-id= | \-n ] + [\-\-raw\-binary | \-b] +.fi +.SH "DESCRIPTION" +.sp +The Security Receive command transfers the status and data result of one or more Security Send commands that were previously submitted to the controller\&. +.sp +The association between a Security Receive command and previous Security Send commands is dependent on the Security Protocol\&. The format of the data to be transferred is dependent on the Security Protocol\&. Refer to SPC\-4 for Security Protocol details\&. +.sp +Each Security Receive command returns the appropriate data corresponding to a Security Send command as defined by the rules of the Security Protocol\&. The Security Receive command data may not be retained if there is a loss of communication between the controller and host, or if a controller reset occurs\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Target a specific namespace for this security command\&. +.RE +.PP +\-N , \-\-nssf= +.RS 4 +NVMe Security Specific field\&. If using security protocol EAh assigned for NVMe use, the NVMe security specific field indicates which reply memory buffer target\&. +.RE +.PP +\-x , \-\-size= +.RS 4 +Size of buffer to allocate\&. One success it will be printed to STDOUT\&. +.RE +.PP +\-p , \-\-secp= +.RS 4 +Security Protocol: This field specifies the security protocol as defined in SPC\-4\&. The controller shall fail the command with Invalid Parameter indicated if a reserved value of the Security Protocol is specified\&. +.RE +.PP +\-s , \-\-spsp= +.RS 4 +SP Specific: The value of this field is specific to the Security Protocol as defined in SPC\-4\&. +.RE +.PP +\-t , \-\-al= +.RS 4 +Allocation Length: The value of this field is specific to the Security Protocol as defined in SPC\-4\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw buffer to stdout\&. Defaults to print in hex\&. +.RE +.SH "EXAMPLES" +.sp +No Examples +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-security-recv.html b/Documentation/nvme-security-recv.html new file mode 100644 index 0000000..39e7ee2 --- /dev/null +++ b/Documentation/nvme-security-recv.html @@ -0,0 +1,893 @@ + + + + + + +nvme-security-recv(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme security-recv <device> [--size=<size> | -x <size>]
+                    [--secp=<security-protocol> | -p <security-protocol>]
+                    [--spsp=<protocol-specific> | -s <protocol-specific>]
+                    [--nssf=<nvme-specific> | -N <nvme-specific>]
+                    [--al=<allocation-length> | -t <allocation-length>]
+                    [--namespace-id=<nsid> | -n <nsid>]
+                    [--raw-binary | -b]
+
+
+
+
+
+

DESCRIPTION

+
+

The Security Receive command transfers the status and data result of +one or more Security Send commands that were previously submitted to +the controller.

+

The association between a Security Receive command and previous Security +Send commands is dependent on the Security Protocol. The format of the +data to be transferred is dependent on the Security Protocol. Refer to +SPC-4 for Security Protocol details.

+

Each Security Receive command returns the appropriate data corresponding +to a Security Send command as defined by the rules of the Security +Protocol. The Security Receive command data may not be retained if there +is a loss of communication between the controller and host, or if a +controller reset occurs.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Target a specific namespace for this security command. +

+
+
+-N <nssf> +
+
+--nssf=<nssf> +
+
+

+ NVMe Security Specific field. If using security protocol EAh + assigned for NVMe use, the NVMe security specific field indicates + which reply memory buffer target. +

+
+
+-x <size> +
+
+--size=<size> +
+
+

+ Size of buffer to allocate. One success it will be printed + to STDOUT. +

+
+
+-p <security-protocol> +
+
+--secp=<security-protocol> +
+
+

+ Security Protocol: This field specifies the security protocol + as defined in SPC-4. The controller shall fail the command with + Invalid Parameter indicated if a reserved value of the Security + Protocol is specified. +

+
+
+-s <security-protocol-specific> +
+
+--spsp=<security-protocol-specific> +
+
+

+ SP Specific: The value of this field is specific to the Security + Protocol as defined in SPC-4. +

+
+
+-t <allocation-length> +
+
+--al=<allocation-length> +
+
+

+ Allocation Length: The value of this field is specific to the + Security Protocol as defined in SPC-4. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw buffer to stdout. Defaults to print in hex. +

+
+
+
+
+
+

EXAMPLES

+
+

No Examples

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-security-recv.txt b/Documentation/nvme-security-recv.txt new file mode 100644 index 0000000..0b9fe99 --- /dev/null +++ b/Documentation/nvme-security-recv.txt @@ -0,0 +1,80 @@ +nvme-security-recv(1) +===================== + +NAME +---- +nvme-security-recv - Security Recv command + +SYNOPSIS +-------- +[verse] +'nvme security-recv' [--size= | -x ] + [--secp= | -p ] + [--spsp= | -s ] + [--nssf= | -N ] + [--al= | -t ] + [--namespace-id= | -n ] + [--raw-binary | -b] + +DESCRIPTION +----------- +The Security Receive command transfers the status and data result of +one or more Security Send commands that were previously submitted to +the controller. + +The association between a Security Receive command and previous Security +Send commands is dependent on the Security Protocol. The format of the +data to be transferred is dependent on the Security Protocol. Refer to +SPC-4 for Security Protocol details. + +Each Security Receive command returns the appropriate data corresponding +to a Security Send command as defined by the rules of the Security +Protocol. The Security Receive command data may not be retained if there +is a loss of communication between the controller and host, or if a +controller reset occurs. + +OPTIONS +------- +-n :: +--namespace-id=:: + Target a specific namespace for this security command. + +-N :: +--nssf=:: + NVMe Security Specific field. If using security protocol EAh + assigned for NVMe use, the NVMe security specific field indicates + which reply memory buffer target. + +-x :: +--size=:: + Size of buffer to allocate. One success it will be printed + to STDOUT. + +-p :: +--secp=:: + Security Protocol: This field specifies the security protocol + as defined in SPC-4. The controller shall fail the command with + Invalid Parameter indicated if a reserved value of the Security + Protocol is specified. + +-s :: +--spsp=:: + SP Specific: The value of this field is specific to the Security + Protocol as defined in SPC-4. + +-t :: +--al=:: + Allocation Length: The value of this field is specific to the + Security Protocol as defined in SPC-4. + +-b:: +--raw-binary:: + Print the raw buffer to stdout. Defaults to print in hex. + +EXAMPLES +-------- +No Examples + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-security-send.1 b/Documentation/nvme-security-send.1 new file mode 100644 index 0000000..919464c --- /dev/null +++ b/Documentation/nvme-security-send.1 @@ -0,0 +1,83 @@ +'\" t +.\" Title: nvme-security-send +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SECURITY\-SEND" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-security-send \- Security Send command +.SH "SYNOPSIS" +.sp +.nf +\fInvme security\-send\fR [\-\-file= | \-f ] + [\-\-secp= | \-p ] + [\-\-spsp= | \-s ] + [\-\-tl= | \-t ] + [\-\-nssf= | \-N ] + [\-\-namespace\-id= | \-n ] +.fi +.SH "DESCRIPTION" +.sp +The Security Send command is used to transfer security protocol data to the controller\&. The data structure transferred to the controller as part of this command contains security protocol specific commands to be performed by the controller\&. The data structure transferred may also contain data or parameters associated with the security protocol commands\&. Status and data that is to be returned to the host for the security protocol commands submitted by a Security Send command are retrieved with the Security Receive command\&. +.sp +The association between a Security Send command and subsequent Security Receive command is Security Protocol field dependent as defined in SPC\-4\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Target a specific namespace for this security command\&. +.RE +.PP +\-N , \-\-nssf= +.RS 4 +NVMe Security Specific field\&. If using security protocol EAh assigned for NVMe use, the NVMe security specific field indicates which reply memory buffer target\&. +.RE +.PP +\-f , \-\-file= +.RS 4 +Path to file used as the security protocol\(cqs payload\&. Required argument\&. +.RE +.PP +\-p , \-\-secp= +.RS 4 +Security Protocol: This field specifies the security protocol as defined in SPC\-4\&. The controller shall fail the command with Invalid Parameter indicated if a reserved value of the Security Protocol is specified\&. +.RE +.PP +\-s , \-\-spsp= +.RS 4 +SP Specific: The value of this field is specific to the Security Protocol as defined in SPC\-4\&. +.RE +.PP +\-t , \-\-tl= +.RS 4 +Transfer Length: The value of this field is specific to the Security Protocol as defined in SPC\-4\&. +.RE +.SH "EXAMPLES" +.sp +No Examples +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-security-send.html b/Documentation/nvme-security-send.html new file mode 100644 index 0000000..4ffa0d6 --- /dev/null +++ b/Documentation/nvme-security-send.html @@ -0,0 +1,879 @@ + + + + + + +nvme-security-send(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme security-send <device> [--file=<file> | -f <file>]
+                    [--secp=<security-protocol> | -p <security-protocol>]
+                    [--spsp=<protocol-specific> | -s <protocol-specific>]
+                    [--tl=<transfer-length> | -t <transfer-length>]
+                    [--nssf=<nvme-specific> | -N <nvme-specific>]
+                    [--namespace-id=<nsid> | -n <nsid>]
+
+
+
+
+
+

DESCRIPTION

+
+

The Security Send command is used to transfer security protocol data +to the controller. The data structure transferred to the controller +as part of this command contains security protocol specific commands +to be performed by the controller. The data structure transferred may +also contain data or parameters associated with the security protocol +commands. Status and data that is to be returned to the host for the +security protocol commands submitted by a Security Send command are +retrieved with the Security Receive command.

+

The association between a Security Send command and subsequent Security +Receive command is Security Protocol field dependent as defined in SPC-4.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Target a specific namespace for this security command. +

+
+
+-N <nssf> +
+
+--nssf=<nssf> +
+
+

+ NVMe Security Specific field. If using security protocol EAh + assigned for NVMe use, the NVMe security specific field indicates + which reply memory buffer target. +

+
+
+-f <file> +
+
+--file=<file> +
+
+

+ Path to file used as the security protocol’s payload. Required + argument. +

+
+
+-p <security-protocol> +
+
+--secp=<security-protocol> +
+
+

+ Security Protocol: This field specifies the security protocol + as defined in SPC-4. The controller shall fail the command with + Invalid Parameter indicated if a reserved value of the Security + Protocol is specified. +

+
+
+-s <security-protocol-specific> +
+
+--spsp=<security-protocol-specific> +
+
+

+ SP Specific: The value of this field is specific to the Security + Protocol as defined in SPC-4. +

+
+
+-t <trans-length> +
+
+--tl=<trans-length> +
+
+

+ Transfer Length: The value of this field is specific to the + Security Protocol as defined in SPC-4. +

+
+
+
+
+
+

EXAMPLES

+
+

No Examples

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-security-send.txt b/Documentation/nvme-security-send.txt new file mode 100644 index 0000000..ae22628 --- /dev/null +++ b/Documentation/nvme-security-send.txt @@ -0,0 +1,72 @@ +nvme-security-send(1) +===================== + +NAME +---- +nvme-security-send - Security Send command + +SYNOPSIS +-------- +[verse] +'nvme security-send' [--file= | -f ] + [--secp= | -p ] + [--spsp= | -s ] + [--tl= | -t ] + [--nssf= | -N ] + [--namespace-id= | -n ] + +DESCRIPTION +----------- +The Security Send command is used to transfer security protocol data +to the controller. The data structure transferred to the controller +as part of this command contains security protocol specific commands +to be performed by the controller. The data structure transferred may +also contain data or parameters associated with the security protocol +commands. Status and data that is to be returned to the host for the +security protocol commands submitted by a Security Send command are +retrieved with the Security Receive command. + +The association between a Security Send command and subsequent Security +Receive command is Security Protocol field dependent as defined in SPC-4. + +OPTIONS +------- +-n :: +--namespace-id=:: + Target a specific namespace for this security command. + +-N :: +--nssf=:: + NVMe Security Specific field. If using security protocol EAh + assigned for NVMe use, the NVMe security specific field indicates + which reply memory buffer target. + +-f :: +--file=:: + Path to file used as the security protocol's payload. Required + argument. + +-p :: +--secp=:: + Security Protocol: This field specifies the security protocol + as defined in SPC-4. The controller shall fail the command with + Invalid Parameter indicated if a reserved value of the Security + Protocol is specified. + +-s :: +--spsp=:: + SP Specific: The value of this field is specific to the Security + Protocol as defined in SPC-4. + +-t :: +--tl=:: + Transfer Length: The value of this field is specific to the + Security Protocol as defined in SPC-4. + +EXAMPLES +-------- +No Examples + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-self-test-log.1 b/Documentation/nvme-self-test-log.1 new file mode 100644 index 0000000..caff6ff --- /dev/null +++ b/Documentation/nvme-self-test-log.1 @@ -0,0 +1,121 @@ +'\" t +.\" Title: nvme-self-test-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SELF\-TEST\-LO" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-self-test-log \- Retrieve the log information initited by device\-self\-test and display it +.SH "SYNOPSIS" +.sp +.nf +\fInvme self\-test\fR\-log [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the log pages from an NVMe device corresponding to the requested self\-test by the user and provides 20\-most recent result returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer or the json format\&. +.sp +By default the log is printed out in the normal readable format\&. +.SH "OPTION" +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the self\-test\-log and print it in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme self\-test\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the raw output to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme self\-test\-log /dev/nvme0 \-o "binary" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the self\-test\-log and print it in a json format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme self\-test\-log /dev/nvme0 \-o "json" +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-self-test-log.html b/Documentation/nvme-self-test-log.html new file mode 100644 index 0000000..7f02a76 --- /dev/null +++ b/Documentation/nvme-self-test-log.html @@ -0,0 +1,836 @@ + + + + + +nvme-self-test-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme self-test-log <device> [--output-format=<FMT> | -o <FMT>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the log pages from an NVMe device corresponding to the +requested self-test by the user and provides 20-most recent result +returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer or the +json format.

+

By default the log is printed out in the normal readable format.

+
+
+
+

OPTION

+
+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Get the self-test-log and print it in a human readable format: +

    +
    +
    +
    # nvme self-test-log /dev/nvme0
    +
    +
  • +
  • +

    +Print the raw output to a file: +

    +
    +
    +
    # nvme self-test-log /dev/nvme0 -o "binary"
    +
    +
  • +
  • +

    +Get the self-test-log and print it in a json format: +

    +
    +
    +
    # nvme self-test-log /dev/nvme0 -o "json"
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-self-test-log.txt b/Documentation/nvme-self-test-log.txt new file mode 100644 index 0000000..78798d9 --- /dev/null +++ b/Documentation/nvme-self-test-log.txt @@ -0,0 +1,61 @@ +nvme-self-test-log(1) +===================== + +NAME +---- +nvme-self-test-log - Retrieve the log information initited by device-self-test and display it + +SYNOPSIS +-------- +[verse] +'nvme self-test'-log [--output-format= | -o ] + +DESCRIPTION +----------- +Retrieves the log pages from an NVMe device corresponding to the +requested self-test by the user and provides 20-most recent result +returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer or the +json format. + +By default the log is printed out in the normal readable format. + +OPTION +------- +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + + +EXAMPLES +-------- +* Get the self-test-log and print it in a human readable format: ++ +------------ +# nvme self-test-log /dev/nvme0 +------------ ++ + +* Print the raw output to a file: ++ +------------ +# nvme self-test-log /dev/nvme0 -o "binary" +------------ ++ + +* Get the self-test-log and print it in a json format: ++ +------------ +# nvme self-test-log /dev/nvme0 -o "json" +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-set-feature.1 b/Documentation/nvme-set-feature.1 new file mode 100644 index 0000000..a39755e --- /dev/null +++ b/Documentation/nvme-set-feature.1 @@ -0,0 +1,124 @@ +'\" t +.\" Title: nvme-set-feature +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SET\-FEATURE" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-set-feature \- Sets an NVMe feature, returns applicable results +.SH "SYNOPSIS" +.sp +.nf +\fInvme set\-feature\fR [\-\-namespace\-id= | \-n ] + [\-\-feature\-id= | \-f ] [\-\-value= | \-v ] + [\-\-data\-len= | \-l ] + [\-\-data= | \-d ] + [\-\-save| \-s] +.fi +.SH "DESCRIPTION" +.sp +Submits an NVMe Set Feature admin command and returns the applicable results\&. This may be the feature\(cqs value, or may also include a feature structure if the feature requires it (ex: LBA Range Type)\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the value sent to the device is displayed +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Sets the feature for the given nsid\&. This is optional and most features do not use this value\&. +.RE +.PP +\-f , \-\-feature\-id= +.RS 4 +The feature id to send with the command\&. Value provided should be in hex\&. +.RE +.PP +\-l , \-\-data\-len= +.RS 4 +The data length for the buffer submitted for this feature\&. Most known features do not use this value\&. The exceptions are LBA Range Type and host identifier\&. +.RE +.PP +\-d , \-\-data= +.RS 4 +The data file for the buffer submitted for this feature\&. Most known features do not use this value\&. The exceptions is LBA Range Type and host identifier\&. This defaults to STDIN so files and echo can be piped\&. +.RE +.PP +\-v , \-\-value= +.RS 4 +The value for command dword 11, the value you want to set the feature to\&. +.RE +.PP +\-s, \-\-save +.RS 4 +Save the attribute so that it persists through all power states and resets\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Sets the Power State (PS) to 1 in feature id 2: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme set\-feature /dev/nvme0 \-f 2 /dev/nvme0n1 \-v 0x1 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Sets the host id to the ascii string\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# echo "abcdefgh" | nvme set\-feature /dev/nvme0 \-f 0x81 \-l 8 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-set-feature.html b/Documentation/nvme-set-feature.html new file mode 100644 index 0000000..b813b91 --- /dev/null +++ b/Documentation/nvme-set-feature.html @@ -0,0 +1,889 @@ + + + + + +nvme-set-feature(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme set-feature <device> [--namespace-id=<nsid> | -n <nsid>]
+                          [--feature-id=<fid> | -f <fid>] [--value=<value> | -v <value>]
+                          [--data-len=<data-len> | -l <data-len>]
+                          [--data=<data-file> | -d <data-file>]
+                          [--save| -s]
+
+
+
+
+
+

DESCRIPTION

+
+

Submits an NVMe Set Feature admin command and returns the applicable +results. This may be the feature’s value, or may also include a feature +structure if the feature requires it (ex: LBA Range Type).

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the value sent to the device is displayed

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Sets the feature for the given nsid. This is optional and + most features do not use this value. +

+
+
+-f <fid> +
+
+--feature-id=<fid> +
+
+

+ The feature id to send with the command. Value provided should + be in hex. +

+
+
+-l <data-len> +
+
+--data-len=<data-len> +
+
+

+ The data length for the buffer submitted for this feature. Most + known features do not use this value. The exceptions are LBA + Range Type and host identifier. +

+
+
+-d <data-file> +
+
+--data=<data-file> +
+
+

+ The data file for the buffer submitted for this feature. Most + known features do not use this value. The exceptions is LBA + Range Type and host identifier. This defaults to STDIN so files + and echo can be piped. +

+
+
+-v <value> +
+
+--value=<value> +
+
+

+ The value for command dword 11, the value you want to set the + feature to. +

+
+
+-s +
+
+--save +
+
+

+ Save the attribute so that it persists through all power states and resets. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Sets the Power State (PS) to 1 in feature id 2: +

    +
    +
    +
    # nvme set-feature /dev/nvme0 -f 2 /dev/nvme0n1 -v 0x1
    +
    +
  • +
  • +

    +Sets the host id to the ascii string. +

    +
    +
    +
    # echo "abcdefgh" | nvme set-feature /dev/nvme0 -f 0x81 -l 8
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-set-feature.txt b/Documentation/nvme-set-feature.txt new file mode 100644 index 0000000..ca1874d --- /dev/null +++ b/Documentation/nvme-set-feature.txt @@ -0,0 +1,79 @@ +nvme-set-feature(1) +=================== + +NAME +---- +nvme-set-feature - Sets an NVMe feature, returns applicable results + +SYNOPSIS +-------- +[verse] +'nvme set-feature' [--namespace-id= | -n ] + [--feature-id= | -f ] [--value= | -v ] + [--data-len= | -l ] + [--data= | -d ] + [--save| -s] + +DESCRIPTION +----------- +Submits an NVMe Set Feature admin command and returns the applicable +results. This may be the feature's value, or may also include a feature +structure if the feature requires it (ex: LBA Range Type). + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the value sent to the device is displayed + +OPTIONS +------- +-n :: +--namespace-id=:: + Sets the feature for the given nsid. This is optional and + most features do not use this value. + +-f :: +--feature-id=:: + The feature id to send with the command. Value provided should + be in hex. + +-l :: +--data-len=:: + The data length for the buffer submitted for this feature. Most + known features do not use this value. The exceptions are LBA + Range Type and host identifier. + +-d :: +--data=:: + The data file for the buffer submitted for this feature. Most + known features do not use this value. The exceptions is LBA + Range Type and host identifier. This defaults to STDIN so files + and echo can be piped. + +-v :: +--value=:: + The value for command dword 11, the value you want to set the + feature to. + +-s:: +--save:: + Save the attribute so that it persists through all power states and resets. + +EXAMPLES +-------- +* Sets the Power State (PS) to 1 in feature id 2: ++ +------------ +# nvme set-feature /dev/nvme0 -f 2 /dev/nvme0n1 -v 0x1 +------------ ++ + +* Sets the host id to the ascii string. ++ +------------ +# echo "abcdefgh" | nvme set-feature /dev/nvme0 -f 0x81 -l 8 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-set-property.1 b/Documentation/nvme-set-property.1 new file mode 100644 index 0000000..d87efd4 --- /dev/null +++ b/Documentation/nvme-set-property.1 @@ -0,0 +1,57 @@ +'\" t +.\" Title: nvme-set-property +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SET\-PROPERTY" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-set-property \- Writes and shows the defined NVMe controller property for NVMe ove Fabric +.SH "SYNOPSIS" +.sp +.nf +\fInvme set\-property\fR [\-\-offset= | \-o ] + [\-\-value= | \-v ] +.fi +.SH "DESCRIPTION" +.sp +Writes and shows the defined NVMe controller property for NVMe ove Fabric\&. +.SH "OPTIONS" +.PP +\-o, \-\-offset +.RS 4 +The offset of the property\&. +.RE +.PP +\-v +.RS 4 +\-\-value: The value of the property to be set\&. +.RE +.SH "EXAMPLES" +.sp +No examples (yet)\&. +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-set-property.html b/Documentation/nvme-set-property.html new file mode 100644 index 0000000..41b06e2 --- /dev/null +++ b/Documentation/nvme-set-property.html @@ -0,0 +1,812 @@ + + + + + + +nvme-set-property(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme set-property <device> [--offset=<offset> | -o <offset>]
+                                [--value=<val> | -v <val>]
+
+
+
+
+
+

DESCRIPTION

+
+

Writes and shows the defined NVMe controller property for NVMe ove Fabric.

+
+
+
+

OPTIONS

+
+
+
+-o +
+
+--offset +
+
+

+ The offset of the property. +

+
+
+-v +
+
+

+--value: + The value of the property to be set. +

+
+
+
+
+
+

EXAMPLES

+
+

No examples (yet).

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-set-property.txt b/Documentation/nvme-set-property.txt new file mode 100644 index 0000000..0d04f52 --- /dev/null +++ b/Documentation/nvme-set-property.txt @@ -0,0 +1,36 @@ +nvme-set-property(1) +==================== + +NAME +---- +nvme-set-property - Writes and shows the defined NVMe controller property +for NVMe ove Fabric + +SYNOPSIS +-------- +[verse] +'nvme set-property' [--offset= | -o ] + [--value= | -v ] + + +DESCRIPTION +----------- +Writes and shows the defined NVMe controller property for NVMe ove Fabric. + +OPTIONS +------- +-o:: +--offset:: + The offset of the property. + +-v:: +--value: + The value of the property to be set. + +EXAMPLES +-------- +No examples (yet). + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-show-hostnqn.1 b/Documentation/nvme-show-hostnqn.1 new file mode 100644 index 0000000..8f901aa --- /dev/null +++ b/Documentation/nvme-show-hostnqn.1 @@ -0,0 +1,48 @@ +'\" t +.\" Title: nvme-show-hostnqn +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SHOW\-HOSTNQN" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-show-hostnqn \- Generate a host NVMe Qualified Name +.SH "SYNOPSIS" +.sp +.nf +\fInvme show\-hostnqn\fR +.fi +.SH "DESCRIPTION" +.sp +Show the host NQN configured for the system\&. If /etc/nvme/hostnqn is not present and systemd application\-specific machine IDs are available, this will show the systemd\-generated host NQN for the system\&. +.SH "OPTIONS" +.sp +No options needed +.SH "EXAMPLES" +.sp +nvme show\-hostnqn +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-show-hostnqn.html b/Documentation/nvme-show-hostnqn.html new file mode 100644 index 0000000..b459d0a --- /dev/null +++ b/Documentation/nvme-show-hostnqn.html @@ -0,0 +1,792 @@ + + + + + + +nvme-show-hostnqn(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme show-hostnqn
+
+
+
+
+
+

DESCRIPTION

+
+

Show the host NQN configured for the system. If /etc/nvme/hostnqn is +not present and systemd application-specific machine IDs are available, +this will show the systemd-generated host NQN for the system.

+
+
+
+

OPTIONS

+
+

No options needed

+
+
+
+

EXAMPLES

+
+

nvme show-hostnqn

+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-show-hostnqn.txt b/Documentation/nvme-show-hostnqn.txt new file mode 100644 index 0000000..044346c --- /dev/null +++ b/Documentation/nvme-show-hostnqn.txt @@ -0,0 +1,29 @@ +nvme-show-hostnqn(1) +=================== + +NAME +---- +nvme-show-hostnqn - Generate a host NVMe Qualified Name + +SYNOPSIS +-------- +[verse] +'nvme show-hostnqn' + +DESCRIPTION +----------- +Show the host NQN configured for the system. If /etc/nvme/hostnqn is +not present and systemd application-specific machine IDs are available, +this will show the systemd-generated host NQN for the system. + +OPTIONS +------- +No options needed + +EXAMPLES +-------- +nvme show-hostnqn + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-show-regs.1 b/Documentation/nvme-show-regs.1 new file mode 100644 index 0000000..b29271d --- /dev/null +++ b/Documentation/nvme-show-regs.1 @@ -0,0 +1,123 @@ +'\" t +.\" Title: nvme-id-ns +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-ID\-NS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-show-regs \- Reads and shows the defined NVMe controller registers for NVMe over PCIe or the controller properties for NVMe over Fabrics\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme show\-regs\fR [\-\-human\-readable | \-H] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe over PCIe device given, sends an identify namespace command and provides the result and returned structure\&. For the NVMe over Fabrics device given, sends a fabric command and provides the result and returned structure\&. +.sp +The parameter is mandatory and must be the nvme admin character device (ex: /dev/nvme0)\&. For NVMe over PCIe, the program uses knowledge of the sysfs layout to map the device to the pci resource stored there and mmaps the memory to get access to the registers\&. For NVMe over Fabrics, the programs sends a fabric command to get the properties of the target NVMe controller\&. Only the supported properties are displayed\&. +.SH "OPTIONS" +.PP +\-H, \-\-human\-readable +.RS 4 +Display registers or supported properties in human readable format\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Show the NVMe over PCIe controller registers or the NVMe over Fabric controller properties in a binary format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme show\-regs /dev/nvme0 \-o binary +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Show the NVMe over PCIe controller registers or the NVMe over Fabric controller properties in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme show\-regs /dev/nvme0 \-H +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Show the NVMe over PCIe controller registers or NVMe\-oF controller properties in a json format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme show\-regs /dev/nvme0 \-o json +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-show-regs.html b/Documentation/nvme-show-regs.html new file mode 100644 index 0000000..1b56c47 --- /dev/null +++ b/Documentation/nvme-show-regs.html @@ -0,0 +1,855 @@ + + + + + + +nvme-id-ns(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme show-regs <device>       [--human-readable | -H]
+                                [--output-format=<FMT> | -o <FMT>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe over PCIe device given, sends an identify namespace command and +provides the result and returned structure. +For the NVMe over Fabrics device given, sends a fabric command and provides +the result and returned structure.

+

The <device> parameter is mandatory and must be the nvme admin character +device (ex: /dev/nvme0). For NVMe over PCIe, the program uses knowledge of the +sysfs layout to map the device to the pci resource stored there and mmaps the +memory to get access to the registers. For NVMe over Fabrics, the programs +sends a fabric command to get the properties of the target NVMe controller. +Only the supported properties are displayed.

+
+
+
+

OPTIONS

+
+
+
+-H +
+
+--human-readable +
+
+

+ Display registers or supported properties in human readable format. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Show the NVMe over PCIe controller registers or the NVMe over Fabric controller +properties in a binary format: +

    +
    +
    +
    # nvme show-regs /dev/nvme0 -o binary
    +
    +
  • +
  • +

    +Show the NVMe over PCIe controller registers or the NVMe over Fabric controller +properties in a human readable format: +

    +
    +
    +
    # nvme show-regs /dev/nvme0 -H
    +
    +
  • +
  • +

    +Show the NVMe over PCIe controller registers or NVMe-oF controller properties +in a json format: +

    +
    +
    +
    # nvme show-regs /dev/nvme0 -o json
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-show-regs.txt b/Documentation/nvme-show-regs.txt new file mode 100644 index 0000000..892b394 --- /dev/null +++ b/Documentation/nvme-show-regs.txt @@ -0,0 +1,63 @@ +nvme-id-ns(1) +============= + +NAME +---- +nvme-show-regs - Reads and shows the defined NVMe controller registers for +NVMe over PCIe or the controller properties for NVMe over Fabrics. + +SYNOPSIS +-------- +[verse] +'nvme show-regs' [--human-readable | -H] + [--output-format= | -o ] + +DESCRIPTION +----------- +For the NVMe over PCIe device given, sends an identify namespace command and +provides the result and returned structure. +For the NVMe over Fabrics device given, sends a fabric command and provides +the result and returned structure. + +The parameter is mandatory and must be the nvme admin character +device (ex: /dev/nvme0). For NVMe over PCIe, the program uses knowledge of the +sysfs layout to map the device to the pci resource stored there and mmaps the +memory to get access to the registers. For NVMe over Fabrics, the programs +sends a fabric command to get the properties of the target NVMe controller. +Only the supported properties are displayed. + +OPTIONS +------- +-H:: +--human-readable:: + Display registers or supported properties in human readable format. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Show the NVMe over PCIe controller registers or the NVMe over Fabric controller +properties in a binary format: ++ +------------ +# nvme show-regs /dev/nvme0 -o binary +------------ +* Show the NVMe over PCIe controller registers or the NVMe over Fabric controller +properties in a human readable format: ++ +------------ +# nvme show-regs /dev/nvme0 -H +------------ +* Show the NVMe over PCIe controller registers or NVMe-oF controller properties +in a json format: ++ +------------ +# nvme show-regs /dev/nvme0 -o json +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-smart-log.1 b/Documentation/nvme-smart-log.1 new file mode 100644 index 0000000..95fbb70 --- /dev/null +++ b/Documentation/nvme-smart-log.1 @@ -0,0 +1,112 @@ +'\" t +.\" Title: nvme-smart-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SMART\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-smart-log \- Send NVMe SMART log page request, returns result and log +.SH "SYNOPSIS" +.sp +.nf +\fInvme smart\-log\fR [\-\-namespace\-id= | \-n ] + [\-\-raw\-binary | \-b] + [\-\-output\-format= | \-o ] +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe SMART log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned smart log structure may be returned in one of several ways depending on the option flags; the structure may parsed by the program and printed in a readable format or the raw buffer may be printed to stdout for another program to parse\&. +.SH "OPTIONS" +.PP +\-n , \-\-namespace\-id= +.RS 4 +Retrieve the SMART log for the given nsid\&. This is optional and its success may depend on the device\(cqs capabilities to provide this log on a per\-namespace basis (see the NVMe Identify Controller for this capability)\&. The default nsid to use is 0xffffffff for the device global SMART log\&. +.RE +.PP +\-b, \-\-raw\-binary +.RS 4 +Print the raw SMART log buffer to stdout\&. +.RE +.PP +\-o , \-\-output\-format= +.RS 4 +Set the reporting format to +\fInormal\fR, +\fIjson\fR, or +\fIbinary\fR\&. Only one output format can be used at a time\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the SMART log page in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme smart\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the raw SMART log to a file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme smart\-log /dev/nvme0 \-\-raw\-binary > smart_log\&.raw +.fi +.if n \{\ +.RE +.\} +.sp +It is probably a bad idea to not redirect stdout when using this mode\&. +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-smart-log.html b/Documentation/nvme-smart-log.html new file mode 100644 index 0000000..465cb91 --- /dev/null +++ b/Documentation/nvme-smart-log.html @@ -0,0 +1,853 @@ + + + + + +nvme-smart-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme smart-log <device> [--namespace-id=<nsid> | -n <nsid>]
+                        [--raw-binary | -b]
+                        [--output-format=<fmt> | -o <fmt>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe SMART log page from an NVMe device and provides the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned smart log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse.

+
+
+
+

OPTIONS

+
+
+
+-n <nsid> +
+
+--namespace-id=<nsid> +
+
+

+ Retrieve the SMART log for the given nsid. This is optional + and its success may depend on the device’s capabilities to + provide this log on a per-namespace basis (see the NVMe Identify + Controller for this capability). The default nsid to use is + 0xffffffff for the device global SMART log. +

+
+
+-b +
+
+--raw-binary +
+
+

+ Print the raw SMART log buffer to stdout. +

+
+
+-o <format> +
+
+--output-format=<format> +
+
+

+ Set the reporting format to normal, json, or + binary. Only one output format can be used at a time. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the SMART log page in a human readable format: +

    +
    +
    +
    # nvme smart-log /dev/nvme0
    +
    +
  • +
  • +

    +Print the raw SMART log to a file: +

    +
    +
    +
    # nvme smart-log /dev/nvme0 --raw-binary > smart_log.raw
    +
    +

    It is probably a bad idea to not redirect stdout when using this mode.

    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-smart-log.txt b/Documentation/nvme-smart-log.txt new file mode 100644 index 0000000..77d0015 --- /dev/null +++ b/Documentation/nvme-smart-log.txt @@ -0,0 +1,65 @@ +nvme-smart-log(1) +================= + +NAME +---- +nvme-smart-log - Send NVMe SMART log page request, returns result and log + +SYNOPSIS +-------- +[verse] +'nvme smart-log' [--namespace-id= | -n ] + [--raw-binary | -b] + [--output-format= | -o ] + +DESCRIPTION +----------- +Retrieves the NVMe SMART log page from an NVMe device and provides the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned smart log structure may be returned in one of +several ways depending on the option flags; the structure may parsed by +the program and printed in a readable format or the raw buffer may be +printed to stdout for another program to parse. + +OPTIONS +------- +-n :: +--namespace-id=:: + Retrieve the SMART log for the given nsid. This is optional + and its success may depend on the device's capabilities to + provide this log on a per-namespace basis (see the NVMe Identify + Controller for this capability). The default nsid to use is + 0xffffffff for the device global SMART log. + +-b:: +--raw-binary:: + Print the raw SMART log buffer to stdout. + +-o :: +--output-format=:: + Set the reporting format to 'normal', 'json', or + 'binary'. Only one output format can be used at a time. + +EXAMPLES +-------- +* Print the SMART log page in a human readable format: ++ +------------ +# nvme smart-log /dev/nvme0 +------------ ++ + +* Print the raw SMART log to a file: ++ +------------ +# nvme smart-log /dev/nvme0 --raw-binary > smart_log.raw +------------ ++ +It is probably a bad idea to not redirect stdout when using this mode. + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-subsystem-reset.1 b/Documentation/nvme-subsystem-reset.1 new file mode 100644 index 0000000..abf7d0d --- /dev/null +++ b/Documentation/nvme-subsystem-reset.1 @@ -0,0 +1,67 @@ +'\" t +.\" Title: nvme-subsystem-reset +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-SUBSYSTEM\-RES" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-subsystem-reset \- Reset the nvme subsystem\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme subsystem\-reset\fR +.fi +.SH "DESCRIPTION" +.sp +Requests NVMe subsystem reset\&. The param is mandatory and must be an NVMe character device (ex: /dev/nvme0)\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Resets the subsystem\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme subsystem\-reset /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-subsystem-reset.html b/Documentation/nvme-subsystem-reset.html new file mode 100644 index 0000000..cd0dcc3 --- /dev/null +++ b/Documentation/nvme-subsystem-reset.html @@ -0,0 +1,797 @@ + + + + + +nvme-subsystem-reset(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme subsystem-reset <device>
+
+
+
+
+
+

DESCRIPTION

+
+

Requests NVMe subsystem reset. The <device> param is mandatory and must +be an NVMe character device (ex: /dev/nvme0).

+
+
+
+

OPTIONS

+
+

None

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Resets the subsystem. +

    +
    +
    +
    # nvme subsystem-reset /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-subsystem-reset.txt b/Documentation/nvme-subsystem-reset.txt new file mode 100644 index 0000000..2267acd --- /dev/null +++ b/Documentation/nvme-subsystem-reset.txt @@ -0,0 +1,32 @@ +nvme-subsystem-reset(1) +======================= + +NAME +---- +nvme-subsystem-reset - Reset the nvme subsystem. + +SYNOPSIS +-------- +[verse] +'nvme subsystem-reset' + +DESCRIPTION +----------- +Requests NVMe subsystem reset. The param is mandatory and must +be an NVMe character device (ex: /dev/nvme0). + +OPTIONS +------- +None + +EXAMPLES +-------- +* Resets the subsystem. ++ +------------ +# nvme subsystem-reset /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-telemetry-log.1 b/Documentation/nvme-telemetry-log.1 new file mode 100644 index 0000000..e978e83 --- /dev/null +++ b/Documentation/nvme-telemetry-log.1 @@ -0,0 +1,87 @@ +'\" t +.\" Title: nvme-telemetry-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-TELEMETRY\-LOG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-telemetry-log \- Retrieves a Telemetry Host\-Initiated log page from an NVMe device +.SH "SYNOPSIS" +.sp +.nf +\fInvme telemetry\-log\fR [\-\-output\-file= | \-o ] + [\-\-host\-generate= | \-g ] +.fi +.SH "DESCRIPTION" +.sp +Retrieves an Telemetry Host\-Initiated log page from an NVMe device and provides the returned structure\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned log structure will be in raw binary format \fIonly\fR with \-\-output\-file option which is mandatory\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-file= +.RS 4 +File name to which raw binary data will be saved to\&. +.RE +.PP +\-g , \-\-host\-generate= +.RS 4 +If set to 1, controller shall capture the Telemetry Host\-Initiated data representing the internal state of the controller at the time the associated Get Log Page command is processed\&. If cleated to 0, controller shall +\fInot\fR +update this data\&. +.RE +.PP +\-d , \-\-data\-area= +.RS 4 +Retrieves the specific data area requested\&. Valid inputs are 1,2,3\&. If this option is not specified, the default value is 3, since that will always give the user all three data areas\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Retrieve Telemetry Host\-Initiated data to telemetry_log\&.bin +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme telemetry\-log /dev/nvme0 \-\-output\-file=telemetry_log\&.bin +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-telemetry-log.html b/Documentation/nvme-telemetry-log.html new file mode 100644 index 0000000..aa32c7c --- /dev/null +++ b/Documentation/nvme-telemetry-log.html @@ -0,0 +1,845 @@ + + + + + + +nvme-telemetry-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme telemetry-log <device> [--output-file=<file> | -o <file>]
+                      [--host-generate=<gen> | -g <gen>]
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves an Telemetry Host-Initiated log page from an NVMe device and provides +the returned structure.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned log structure will be in raw binary format only with +--output-file option which is mandatory.

+
+
+
+

OPTIONS

+
+
+
+-o <file> +
+
+--output-file=<file> +
+
+

+ File name to which raw binary data will be saved to. +

+
+
+-g <gen> +
+
+--host-generate=<gen> +
+
+

+ If set to 1, controller shall capture the Telemetry Host-Initiated data + representing the internal state of the controller at the time the + associated Get Log Page command is processed. + If cleated to 0, controller shall not update this data. +

+
+
+-d <da> +
+
+--data-area=<da> +
+
+

+ Retrieves the specific data area requested. Valid inputs are 1,2,3. If + this option is not specified, the default value is 3, since that will + always give the user all three data areas. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Retrieve Telemetry Host-Initiated data to telemetry_log.bin +

    +
    +
    +
    # nvme telemetry-log /dev/nvme0 --output-file=telemetry_log.bin
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-telemetry-log.txt b/Documentation/nvme-telemetry-log.txt new file mode 100644 index 0000000..9b1c9e4 --- /dev/null +++ b/Documentation/nvme-telemetry-log.txt @@ -0,0 +1,54 @@ +nvme-telemetry-log(1) +===================== + +NAME +---- +nvme-telemetry-log - Retrieves a Telemetry Host-Initiated log page from an NVMe device + +SYNOPSIS +-------- +[verse] +'nvme telemetry-log' [--output-file= | -o ] + [--host-generate= | -g ] + +DESCRIPTION +----------- +Retrieves an Telemetry Host-Initiated log page from an NVMe device and provides +the returned structure. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned log structure will be in raw binary format _only_ with +--output-file option which is mandatory. + +OPTIONS +------- +-o :: +--output-file=:: + File name to which raw binary data will be saved to. + +-g :: +--host-generate=:: + If set to 1, controller shall capture the Telemetry Host-Initiated data + representing the internal state of the controller at the time the + associated Get Log Page command is processed. + If cleated to 0, controller shall _not_ update this data. + +-d :: +--data-area=:: + Retrieves the specific data area requested. Valid inputs are 1,2,3. If + this option is not specified, the default value is 3, since that will + always give the user all three data areas. + +EXAMPLES +-------- +* Retrieve Telemetry Host-Initiated data to telemetry_log.bin ++ +------------ +# nvme telemetry-log /dev/nvme0 --output-file=telemetry_log.bin +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-toshiba-clear-pcie-correctable-errors.1 b/Documentation/nvme-toshiba-clear-pcie-correctable-errors.1 new file mode 100644 index 0000000..fd92c33 --- /dev/null +++ b/Documentation/nvme-toshiba-clear-pcie-correctable-errors.1 @@ -0,0 +1,66 @@ +'\" t +.\" Title: nvme-toshiba-clear-pcie-correctable-errors +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-TOSHIBA\-CLEAR" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-toshiba-clear-pcie-correctable-errors \- Reset the PCIe correctable errors count to zero\&. +.SH "SYNOPSIS" +.sp +.nf +\*(Aqnvme toshiba clear\-pcie\-correctable\-errors \*(Aq +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the Toshiba clear PCIe correctable errors request\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Clear the PCIe correctable errors count: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme toshiba clear\-pcie\-correctable\-errors /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-toshiba-clear-pcie-correctable-errors.html b/Documentation/nvme-toshiba-clear-pcie-correctable-errors.html new file mode 100644 index 0000000..a09c5b5 --- /dev/null +++ b/Documentation/nvme-toshiba-clear-pcie-correctable-errors.html @@ -0,0 +1,797 @@ + + + + + +nvme-toshiba-clear-pcie-correctable-errors(1) + + + + + +
+
+

SYNOPSIS

+
+
+
'nvme toshiba clear-pcie-correctable-errors ' <device>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the Toshiba clear PCIe correctable errors +request.

+

The <device> parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1).

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Clear the PCIe correctable errors count: +

    +
    +
    +
    # nvme toshiba clear-pcie-correctable-errors /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-toshiba-clear-pcie-correctable-errors.txt b/Documentation/nvme-toshiba-clear-pcie-correctable-errors.txt new file mode 100644 index 0000000..5871900 --- /dev/null +++ b/Documentation/nvme-toshiba-clear-pcie-correctable-errors.txt @@ -0,0 +1,34 @@ +nvme-toshiba-clear-pcie-correctable-errors(1) +============================================= + +NAME +---- +nvme-toshiba-clear-pcie-correctable-errors - Reset the PCIe correctable errors count to zero. + +SYNOPSIS +-------- +[verse] +'nvme toshiba clear-pcie-correctable-errors ' + + +DESCRIPTION +----------- +For the NVMe device given, sends the Toshiba clear PCIe correctable errors +request. + +The parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1). + + +EXAMPLES +-------- +* Clear the PCIe correctable errors count: ++ +------------ +# nvme toshiba clear-pcie-correctable-errors /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-toshiba-vs-internal-log.1 b/Documentation/nvme-toshiba-vs-internal-log.1 new file mode 100644 index 0000000..325ebbd --- /dev/null +++ b/Documentation/nvme-toshiba-vs-internal-log.1 @@ -0,0 +1,108 @@ +'\" t +.\" Title: nvme-toshiba-vs-internal-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-TOSHIBA\-VS\-I" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-toshiba-vs-internal-log \- Retrieve a Toshiba device\*(Aqs vendor specific internal log and either save to file or dump the contents\&. +.SH "SYNOPSIS" +.sp +.nf +\*(Aqnvme toshiba vs\-internal\-log \*(Aq + [\-\-output\-file=, \-o ] (optional) + [\-\-saved\-log, \-s] (optional) +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the Toshiba internal device log request and either saves the result to a file or dumps the content to stdout\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +The log is associated with the controller rather than any namespaces\&. +.sp +Two logs exist, the current log and the previous log\&. +.sp +This will only work on Toshiba devices supporting this feature\&. +.sp +Note: The logs are quite large \- typically 100\(cqs of MB\&. This command can take several minutes to complete\&. A progress runner is included when data is written to file and a page count is included in the stdout dump\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-file= +.RS 4 +Output binary file\&. Defaults to text\-formatted dump to stdout +.RE +.PP +\-p, \-\-prev\-log +.RS 4 +Use previous log contents\&. Defaults to the current log contents\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the current log from the device and dump it to stdout: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme toshiba internal\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the previous log from the device and save to a binary file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme toshiba internal\-log /dev/nvme0 \-\-output\-file=log\&.bin \-\-prev\-log +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-toshiba-vs-internal-log.html b/Documentation/nvme-toshiba-vs-internal-log.html new file mode 100644 index 0000000..7b30cc2 --- /dev/null +++ b/Documentation/nvme-toshiba-vs-internal-log.html @@ -0,0 +1,844 @@ + + + + + + +nvme-toshiba-vs-internal-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
'nvme toshiba vs-internal-log ' <device>
+                [--output-file=<FILE>, -o <FILE>] (optional)
+                [--saved-log, -s] (optional)
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the Toshiba internal device log +request and either saves the result to a file or dumps the content to stdout.

+

The <device> parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1).

+

The log is associated with the controller rather than any +namespaces.

+

Two logs exist, the current log and the previous log.

+

This will only work on Toshiba devices supporting this feature.

+

Note: The logs are quite large - typically 100’s of MB. This command can take several minutes to complete. +A progress runner is included when data is written to file and a page count is included in the stdout dump.

+
+
+
+

OPTIONS

+
+
+
+-o <FILE> +
+
+--output-file=<FILE> +
+
+

+ Output binary file. Defaults to text-formatted dump to stdout +

+
+
+-p +
+
+--prev-log +
+
+

+ Use previous log contents. Defaults to the current log contents. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Get the current log from the device and dump it to stdout: +

    +
    +
    +
    # nvme toshiba internal-log /dev/nvme0
    +
    +
  • +
  • +

    +Get the previous log from the device and save to a binary file: +

    +
    +
    +
    # nvme toshiba internal-log /dev/nvme0 --output-file=log.bin --prev-log
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-toshiba-vs-internal-log.txt b/Documentation/nvme-toshiba-vs-internal-log.txt new file mode 100644 index 0000000..d3c0104 --- /dev/null +++ b/Documentation/nvme-toshiba-vs-internal-log.txt @@ -0,0 +1,64 @@ +nvme-toshiba-vs-internal-log(1) +=============================== + +NAME +---- +nvme-toshiba-vs-internal-log - Retrieve a Toshiba device's vendor specific internal log and either save to file or dump the contents. + +SYNOPSIS +-------- +[verse] +'nvme toshiba vs-internal-log ' + [--output-file=, -o ] (optional) + [--saved-log, -s] (optional) + +DESCRIPTION +----------- +For the NVMe device given, sends the Toshiba internal device log +request and either saves the result to a file or dumps the content to stdout. + +The parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1). + +The log is associated with the controller rather than any +namespaces. + +Two logs exist, the current log and the previous log. + +This will only work on Toshiba devices supporting this feature. + +Note: The logs are quite large - typically 100's of MB. This command can take several minutes to complete. +A progress runner is included when data is written to file and a page count is included in the stdout dump. + +OPTIONS +------- + + +-o :: +--output-file=:: + Output binary file. Defaults to text-formatted dump to stdout + + +-p:: +--prev-log:: + Use previous log contents. Defaults to the current log contents. + +EXAMPLES +-------- +* Get the current log from the device and dump it to stdout: ++ +------------ +# nvme toshiba internal-log /dev/nvme0 +------------ ++ + +* Get the previous log from the device and save to a binary file: ++ +------------ +# nvme toshiba internal-log /dev/nvme0 --output-file=log.bin --prev-log +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-toshiba-vs-smart-add-log.1 b/Documentation/nvme-toshiba-vs-smart-add-log.1 new file mode 100644 index 0000000..7463a72 --- /dev/null +++ b/Documentation/nvme-toshiba-vs-smart-add-log.1 @@ -0,0 +1,106 @@ +'\" t +.\" Title: nvme-toshiba-vs-smart-add-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-TOSHIBA\-VS\-S" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-toshiba-vs-smart-add-log \- Retrieve a Toshiba device\*(Aqs vendor specific extended SMART log page contents and either save to file or dump the contents\&. +.SH "SYNOPSIS" +.sp +.nf +\*(Aqnvme toshiba vs\-smart\-add\-log \*(Aq [\-\-log=, \-l ] + [\-\-namespace\-id=, \-n ] + [\-\-output\-file=, \-o ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the Toshiba vendor log request and either saves the result to a file or dumps the content to stdout\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +The log contents may be associated with the controller, in which case the namespace parameter is ignored\&. +.sp +Two logs exist, page 0xC0 (log page directory) and page 0xCA (vendor log page) +.sp +This will only work on Toshiba devices supporting this feature\&. +.SH "OPTIONS" +.PP +\-l , \-\-log= +.RS 4 +Log page: 0xC0 or 0xCA (defaults to 0xCA) +.RE +.PP +\-n , \-\-namespace\-id=, \-o , \-\-output\-file= +.RS 4 +Output binary file\&. Defaults to text\-formatted dump to stdout +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the current log from the device and dumps it to stdout: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme toshiba vs\-smart\-add\-log /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Get the contents of log page 0xC0 from the device and save to a binary file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme toshiba vs\-smart\-add\-log /dev/nvme0 \-\-output\-file=log\&.bin \-\-log=0xC0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-toshiba-vs-smart-add-log.html b/Documentation/nvme-toshiba-vs-smart-add-log.html new file mode 100644 index 0000000..d0df5d8 --- /dev/null +++ b/Documentation/nvme-toshiba-vs-smart-add-log.html @@ -0,0 +1,846 @@ + + + + + +nvme-toshiba-vs-smart-add-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
'nvme toshiba vs-smart-add-log ' <device> [--log=<NUM>, -l <NUM>]
+                [--namespace-id=<NUM>, -n <NUM>]
+                [--output-file=<FILE>, -o <FILE>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the Toshiba vendor log +request and either saves the result to a file or dumps the content to stdout.

+

The <device> parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1).

+

The log contents may be associated with the controller, in which case the namespace parameter is ignored.

+

Two logs exist, page 0xC0 (log page directory) and page 0xCA (vendor log page)

+

This will only work on Toshiba devices supporting this feature.

+
+
+
+

OPTIONS

+
+
+
+-l <NUM> +
+
+--log=<NUM> +
+
+

+ Log page: 0xC0 or 0xCA (defaults to 0xCA) +

+
+
+-n <NUM> +
+
+--namespace-id=<NUM> +
+
+-o <FILE> +
+
+--output-file=<FILE> +
+
+

+ Output binary file. Defaults to text-formatted dump to stdout +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Get the current log from the device and dumps it to stdout: +

    +
    +
    +
    # nvme toshiba vs-smart-add-log /dev/nvme0
    +
    +
  • +
  • +

    +Get the contents of log page 0xC0 from the device and save to a binary file: +

    +
    +
    +
    # nvme toshiba vs-smart-add-log /dev/nvme0 --output-file=log.bin --log=0xC0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-toshiba-vs-smart-add-log.txt b/Documentation/nvme-toshiba-vs-smart-add-log.txt new file mode 100644 index 0000000..8ea4d3e --- /dev/null +++ b/Documentation/nvme-toshiba-vs-smart-add-log.txt @@ -0,0 +1,64 @@ +nvme-toshiba-vs-smart-add-log(1) +================================ + +NAME +---- +nvme-toshiba-vs-smart-add-log - Retrieve a Toshiba device's vendor specific extended SMART log page contents and either save to file or dump the contents. + +SYNOPSIS +-------- +[verse] +'nvme toshiba vs-smart-add-log ' [--log=, -l ] + [--namespace-id=, -n ] + [--output-file=, -o ] + + +DESCRIPTION +----------- +For the NVMe device given, sends the Toshiba vendor log +request and either saves the result to a file or dumps the content to stdout. + +The parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1). + +The log contents may be associated with the controller, in which case the namespace parameter is ignored. + +Two logs exist, page 0xC0 (log page directory) and page 0xCA (vendor log page) + +This will only work on Toshiba devices supporting this feature. + +OPTIONS +------- + +-l :: +--log=:: + Log page: 0xC0 or 0xCA (defaults to 0xCA) + +-n :: +--namespace-id=:: + +-o :: +--output-file=:: + Output binary file. Defaults to text-formatted dump to stdout + + + +EXAMPLES +-------- +* Get the current log from the device and dumps it to stdout: ++ +------------ +# nvme toshiba vs-smart-add-log /dev/nvme0 +------------ ++ + +* Get the contents of log page 0xC0 from the device and save to a binary file: ++ +------------ +# nvme toshiba vs-smart-add-log /dev/nvme0 --output-file=log.bin --log=0xC0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-transcend-badblock.1 b/Documentation/nvme-transcend-badblock.1 new file mode 100644 index 0000000..4986df0 --- /dev/null +++ b/Documentation/nvme-transcend-badblock.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-transcend-badblock +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-TRANSCEND\-BAD" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-transcend-badblock \- Retrieve Transcend NVMe device\*(Aqs bad blocks\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme transcend badblock\fR +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the Transcend vendor command and return the bad block of the device\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned value would print the amount of bad blocks\&. +.SH "OPTIONS" +.sp +none +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the Transcend device\(cqs bad blocks in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme transcend badblock /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-transcend-badblock.html b/Documentation/nvme-transcend-badblock.html new file mode 100644 index 0000000..77967a2 --- /dev/null +++ b/Documentation/nvme-transcend-badblock.html @@ -0,0 +1,803 @@ + + + + + + +nvme-transcend-badblock(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme transcend badblock <device>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the Transcend vendor command and return the bad block of the device.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned value would print the amount of bad blocks.

+
+
+
+

OPTIONS

+
+

none

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the Transcend device’s bad blocks in a human readable format: +

    +
    +
    +
    # nvme transcend badblock /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-transcend-badblock.txt b/Documentation/nvme-transcend-badblock.txt new file mode 100644 index 0000000..888076c --- /dev/null +++ b/Documentation/nvme-transcend-badblock.txt @@ -0,0 +1,37 @@ +nvme-transcend-badblock(1) +========================== + +NAME +---- +nvme-transcend-badblock - Retrieve Transcend NVMe device's bad blocks. + +SYNOPSIS +-------- +[verse] +'nvme transcend badblock' + +DESCRIPTION +----------- +For the NVMe device given, sends the Transcend vendor command and return the bad block of the device. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned value would print the amount of bad blocks. + +OPTIONS +------- +none + + +EXAMPLES +-------- +* Print the Transcend device's bad blocks in a human readable format: ++ +------------ +# nvme transcend badblock /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-transcend-healthvalue.1 b/Documentation/nvme-transcend-healthvalue.1 new file mode 100644 index 0000000..47e16a9 --- /dev/null +++ b/Documentation/nvme-transcend-healthvalue.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-transcend-healthvalue +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-TRANSCEND\-HEA" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-transcend-healthvalue \- Use NVMe SMART table to analyse the health value of Transcend device\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme transcned healthvalue\fR +.fi +.SH "DESCRIPTION" +.sp +Retrieves the NVMe Device SMART log page from the Transcend device and evaluate health status of Transcend device\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the returned value would print health percentage value\&. +.SH "OPTIONS" +.sp +none +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the Transcend Device health value in a human readable format: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme transcned healthvalue /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-transcend-healthvalue.html b/Documentation/nvme-transcend-healthvalue.html new file mode 100644 index 0000000..a9bb89b --- /dev/null +++ b/Documentation/nvme-transcend-healthvalue.html @@ -0,0 +1,803 @@ + + + + + + +nvme-transcend-healthvalue(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme transcned healthvalue <device>
+
+
+
+
+
+

DESCRIPTION

+
+

Retrieves the NVMe Device SMART log page from the Transcend device and evaluate health status of Transcend device.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the returned value would print health percentage value.

+
+
+
+

OPTIONS

+
+

none

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Print the Transcend Device health value in a human readable format: +

    +
    +
    +
    # nvme transcned healthvalue /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-transcend-healthvalue.txt b/Documentation/nvme-transcend-healthvalue.txt new file mode 100644 index 0000000..eecf68b --- /dev/null +++ b/Documentation/nvme-transcend-healthvalue.txt @@ -0,0 +1,37 @@ +nvme-transcend-healthvalue(1) +============================= + +NAME +---- +nvme-transcend-healthvalue - Use NVMe SMART table to analyse the health value of Transcend device. + +SYNOPSIS +-------- +[verse] +'nvme transcned healthvalue' + +DESCRIPTION +----------- +Retrieves the NVMe Device SMART log page from the Transcend device and evaluate health status of Transcend device. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the returned value would print health percentage value. + +OPTIONS +------- +none + + +EXAMPLES +-------- +* Print the Transcend Device health value in a human readable format: ++ +------------ +# nvme transcned healthvalue /dev/nvme0 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-virtium-save-smart-to-vtview-log.1 b/Documentation/nvme-virtium-save-smart-to-vtview-log.1 new file mode 100644 index 0000000..7f70ccf --- /dev/null +++ b/Documentation/nvme-virtium-save-smart-to-vtview-log.1 @@ -0,0 +1,138 @@ +'\" t +.\" Title: nvme-virtium-save-smart-to-vtview-log +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-VIRTIUM\-SAVE\" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-virtium-save-smart-to-vtview-log \- Periodically save smart attributes into a log file (csv format)\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme virtium save\-smart\-to\-vtview\-log\fR [\-\-run\-time= | \-r ] + [\-\-freq= | \-f ] + [\-\-output\-file= | \-o ] + [\-\-test\-name= | \-n ] +.fi +.SH "DESCRIPTION" +.sp +This command automates the process of collecting SMART data periodically and saving the data in a ready\-to\-analyze format\&. Each entry is saved with timestamp and in csv format\&. Users can use excel to analyze the data\&. Some examples of use cases are collecting SMART data for temperature characterization, collecting data to calculate endurance, or collecting SMART data during a test or during normal operation\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the command generates a log file, which contains an entry for identify device (current features & settings) and periodic entries of SMART data\&. +.sp +This command runs for the time specified by the option , and collects SMART data at the frequency specified by the option \&. If the output file name is not specified, this command will generate a file name that include model string and serial number of the device\&. +.sp +If the test\-name option is specified, it will be recorded in the log file and be used as part of the log file name\&. +.SH "OPTIONS" +.PP +\-r , \-\-run\-tim= +.RS 4 +(optional) Number of hours to log data (default = 20 hours) +.RE +.PP +\-f , \-\-freq= +.RS 4 +(optional) How often you want to log SMART data (0\&.25 = 15\*(Aq , 0\&.5 = 30\*(Aq , 1 = 1 hour, 2 = 2 hours, etc\&.)\&. Default = 10 hours\&. +.RE +.PP +\-o , \-\-output\-file= +.RS 4 +(optional) Name of the log file (give it a name that easy for you to remember what the test is)\&. You can leave it blank too, the file name will be generated as \-\-\&.txt\&. +.RE +.PP +\-n , \-\-test\-name= +.RS 4 +(optional) Name of the test you are doing\&. We use this string as part of the name of the log file\&. +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Temperature characterization: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme virtium save\-smart\-to\-vtview\-log /dev/yourDevice \-\-run\-time=100 \-\-record\-frequency=0\&.25 \-\-test\-name=burn\-in\-at\-(\-40) +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Endurance testing: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme virtium save\-smart\-to\-vtview\-log /dev/yourDevice \-\-run\-time=100 \-\-record\-frequency=1 \-\-test\-name=Endurance\-test\-JEDEG\-219\-workload +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Just logging: Default logging is run for 20 hours and log every 10 hours\&. +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme virtium save\-smart\-to\-vtview\-log /dev/yourDevice +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-virtium-save-smart-to-vtview-log.html b/Documentation/nvme-virtium-save-smart-to-vtview-log.html new file mode 100644 index 0000000..f420f62 --- /dev/null +++ b/Documentation/nvme-virtium-save-smart-to-vtview-log.html @@ -0,0 +1,883 @@ + + + + + + +nvme-virtium-save-smart-to-vtview-log(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme virtium save-smart-to-vtview-log <device> [--run-time=<NUM> | -r <NUM>]
+                        [--freq=<NUM> | -f <NUM>]
+                        [--output-file=<FILE> | -o <FILE>]
+                        [--test-name=<NAME> | -n <NAME>]
+
+
+
+
+
+

DESCRIPTION

+
+

This command automates the process of collecting SMART data periodically and +saving the data in a ready-to-analyze format. Each entry is saved +with timestamp and in csv format. Users can use excel to analyze the data. +Some examples of use cases are collecting SMART data for temperature characterization, +collecting data to calculate endurance, or collecting SMART data during a test +or during normal operation.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the command generates a log file, which contains an entry for identify device +(current features & settings) and periodic entries of SMART data.

+

This command runs for the time specified by the option <run-time>, and collects SMART data +at the frequency specified by the option <freq>. If the output file name is not specified, +this command will generate a file name that include model string and serial number of the device.

+

If the test-name option is specified, it will be recorded in the log file and be used as part +of the log file name.

+
+
+
+

OPTIONS

+
+
+
+-r <NUM> +
+
+--run-tim=<NUM> +
+
+

+ (optional) Number of hours to log data (default = 20 hours) +

+
+
+-f <NUM> +
+
+--freq=<NUM> +
+
+

+ (optional) How often you want to log SMART data + (0.25 = 15' , 0.5 = 30' , 1 = 1 hour, 2 = 2 hours, etc.). Default = 10 hours. +

+
+
+-o <FILE> +
+
+--output-file=<FILE> +
+
+

+ (optional) Name of the log file (give it a name that easy for you to remember + what the test is). You can leave it blank too, the file name will be generated + as <model string>-<serial number>-<test name>.txt. +

+
+
+-n <NAME> +
+
+--test-name=<NAME> +
+
+

+ (optional) Name of the test you are doing. We use this string as part of the name of the log file. +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Temperature characterization: +

    +
    +
    +
    # nvme virtium save-smart-to-vtview-log /dev/yourDevice --run-time=100 --record-frequency=0.25 --test-name=burn-in-at-(-40)
    +
    +
  • +
  • +

    +Endurance testing: +

    +
    +
    +
    # nvme virtium save-smart-to-vtview-log /dev/yourDevice --run-time=100 --record-frequency=1 --test-name=Endurance-test-JEDEG-219-workload
    +
    +
  • +
  • +

    +Just logging: Default logging is run for 20 hours and log every 10 hours. +

    +
    +
    +
    # nvme virtium save-smart-to-vtview-log /dev/yourDevice
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-virtium-save-smart-to-vtview-log.txt b/Documentation/nvme-virtium-save-smart-to-vtview-log.txt new file mode 100755 index 0000000..3e27b7e --- /dev/null +++ b/Documentation/nvme-virtium-save-smart-to-vtview-log.txt @@ -0,0 +1,84 @@ +nvme-virtium-save-smart-to-vtview-log(1) +======================================== + +NAME +---- +nvme-virtium-save-smart-to-vtview-log - Periodically save smart attributes into a log file (csv format). + +SYNOPSIS +-------- +[verse] +'nvme virtium save-smart-to-vtview-log' [--run-time= | -r ] + [--freq= | -f ] + [--output-file= | -o ] + [--test-name= | -n ] + +DESCRIPTION +----------- +This command automates the process of collecting SMART data periodically and +saving the data in a ready-to-analyze format. Each entry is saved +with timestamp and in csv format. Users can use excel to analyze the data. +Some examples of use cases are collecting SMART data for temperature characterization, +collecting data to calculate endurance, or collecting SMART data during a test +or during normal operation. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the command generates a log file, which contains an entry for identify device +(current features & settings) and periodic entries of SMART data. + +This command runs for the time specified by the option , and collects SMART data +at the frequency specified by the option . If the output file name is not specified, +this command will generate a file name that include model string and serial number of the device. + +If the test-name option is specified, it will be recorded in the log file and be used as part +of the log file name. + +OPTIONS +------- +-r :: +--run-tim=:: + (optional) Number of hours to log data (default = 20 hours) + +-f :: +--freq=:: + (optional) How often you want to log SMART data + (0.25 = 15' , 0.5 = 30' , 1 = 1 hour, 2 = 2 hours, etc.). Default = 10 hours. + +-o :: +--output-file=:: + (optional) Name of the log file (give it a name that easy for you to remember + what the test is). You can leave it blank too, the file name will be generated + as --.txt. + +-n :: +--test-name=:: + (optional) Name of the test you are doing. We use this string as part of the name of the log file. + + +EXAMPLES +-------- +* Temperature characterization: ++ +------------ +# nvme virtium save-smart-to-vtview-log /dev/yourDevice --run-time=100 --record-frequency=0.25 --test-name=burn-in-at-(-40) +------------ ++ + +* Endurance testing: ++ +------------ +# nvme virtium save-smart-to-vtview-log /dev/yourDevice --run-time=100 --record-frequency=1 --test-name=Endurance-test-JEDEG-219-workload +------------ ++ + +* Just logging: Default logging is run for 20 hours and log every 10 hours. ++ +------------ +# nvme virtium save-smart-to-vtview-log /dev/yourDevice +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-virtium-show-identify.1 b/Documentation/nvme-virtium-show-identify.1 new file mode 100644 index 0000000..0d778f6 --- /dev/null +++ b/Documentation/nvme-virtium-show-identify.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-virtium-show-identify +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-VIRTIUM\-SHOW\" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-virtium-show-identify \- Show a complete detail of identify device information in json format\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme virtium show\-identify\fR +.fi +.SH "DESCRIPTION" +.sp +This command prints complete detail of the identify device information\&. The details include settings and description of each feature\&. The descriptions are based on NVM Express Revision 1\&.3c specification\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +On success, the command prints identify device in human readable format\&. +.SH "OPTIONS" +.sp +none +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Show Identify Device: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme virtium show\-identify /dev/nvme0n1 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-virtium-show-identify.html b/Documentation/nvme-virtium-show-identify.html new file mode 100644 index 0000000..9238dd3 --- /dev/null +++ b/Documentation/nvme-virtium-show-identify.html @@ -0,0 +1,801 @@ + + + + + +nvme-virtium-show-identify(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme virtium show-identify <device>
+
+
+
+
+
+

DESCRIPTION

+
+

This command prints complete detail of the identify device information. The +details include settings and description of each feature. The descriptions are +based on NVM Express Revision 1.3c specification.

+

The <device> parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1).

+

On success, the command prints identify device in human readable format.

+
+
+
+

OPTIONS

+
+

none

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Show Identify Device: +

    +
    +
    +
    # nvme virtium show-identify /dev/nvme0n1
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-virtium-show-identify.txt b/Documentation/nvme-virtium-show-identify.txt new file mode 100755 index 0000000..5ce1933 --- /dev/null +++ b/Documentation/nvme-virtium-show-identify.txt @@ -0,0 +1,39 @@ +nvme-virtium-show-identify(1) +============================= + +NAME +---- +nvme-virtium-show-identify - Show a complete detail of identify device information in json format. + +SYNOPSIS +-------- +[verse] +'nvme virtium show-identify' + +DESCRIPTION +----------- +This command prints complete detail of the identify device information. The +details include settings and description of each feature. The descriptions are +based on NVM Express Revision 1.3c specification. + +The parameter is mandatory and may be either the NVMe character +device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1). + +On success, the command prints identify device in human readable format. + +OPTIONS +------- +none + + +EXAMPLES +-------- +* Show Identify Device: ++ +------------ +# nvme virtium show-identify /dev/nvme0n1 +------------ + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-wdc-cap-diag.1 b/Documentation/nvme-wdc-cap-diag.1 new file mode 100644 index 0000000..3d47e7c --- /dev/null +++ b/Documentation/nvme-wdc-cap-diag.1 @@ -0,0 +1,163 @@ +'\" t +.\" Title: nvme-wdc-cap-diag +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-WDC\-CAP\-DIAG" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-wdc-cap-diag \- Retrieve WDC device\*(Aqs diagnostic log and save to file\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme wdc cap\-diag\fR [\-\-output\-file=, \-o ] [\-\-transfer\-size=, \-s ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the WDC Vendor Unique Capture\-Diagnostics request and saves the result to a file\&. +.sp +The parameter is mandatory NVMe character device (ex: /dev/nvme0)\&. +.sp +This will only work on WDC devices supporting this feature\&. Results for any other device are undefined\&. +.SH "OPTIONS" +.PP +\-o , \-\-output\-file= +.RS 4 +Output file; defaults to device serial number followed by "cap_diag" suffix +.RE +.PP +\-s , \-\-transfer\-size= +.RS 4 +Transfer size; defaults to 0x10000 (65536 decimal) bytes +.RE +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Gets the capture diagnostics log from the device and saves to default file in current directory (e\&.g\&. STM00019F3F9cap_diag\&.bin): +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc cap\-diag /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Gets the capture diagnostics log from the device and saves to defined file in current directory (e\&.g\&. testSTM00019F3F9cap_diag\&.bin): +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc cap\-diag /dev/nvme0 \-o test +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Gets the capture diagnostics log from the device and saves to defined file with pathname (e\&.g\&. /tmp/testSTM00019F3F9cap_diag\&.bin): +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc cap\-diag /dev/nvme0 \-o /tmp/test +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Gets the capture diagnostics log from the device transferring the data in 64k chunks and saves to default file in current directory (e\&.g\&. STM00019F3F9internal_fw_log\&.bin): +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc cap\-diag /dev/nvme0 \-s 0x10000 +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Gets the capture diagnostics log from the device transferring the data in 16k chunks and saves to default file in current directory (e\&.g\&. STM00019F3F9internal_fw_log\&.bin): +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc cap\-diag /dev/nvme0 \-s 16384 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite\&. diff --git a/Documentation/nvme-wdc-cap-diag.html b/Documentation/nvme-wdc-cap-diag.html new file mode 100644 index 0000000..166d0ca --- /dev/null +++ b/Documentation/nvme-wdc-cap-diag.html @@ -0,0 +1,859 @@ + + + + + +nvme-wdc-cap-diag(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc cap-diag <device> [--output-file=<FILE>, -o <FILE>] [--transfer-size=<SIZE>, -s <SIZE>]
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the WDC Vendor Unique Capture-Diagnostics +request and saves the result to a file.

+

The <device> parameter is mandatory NVMe character device (ex: /dev/nvme0).

+

This will only work on WDC devices supporting this feature. +Results for any other device are undefined.

+
+
+
+

OPTIONS

+
+
+
+-o <FILE> +
+
+--output-file=<FILE> +
+
+

+ Output file; defaults to device serial number followed by "cap_diag" suffix +

+
+
+-s <SIZE> +
+
+--transfer-size=<SIZE> +
+
+

+ Transfer size; defaults to 0x10000 (65536 decimal) bytes +

+
+
+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Gets the capture diagnostics log from the device and saves to default file in current directory (e.g. STM00019F3F9cap_diag.bin): +

    +
    +
    +
    # nvme wdc cap-diag /dev/nvme0
    +
    +
  • +
  • +

    +Gets the capture diagnostics log from the device and saves to defined file in current directory (e.g. testSTM00019F3F9cap_diag.bin): +

    +
    +
    +
    # nvme wdc cap-diag /dev/nvme0 -o test
    +
    +
  • +
  • +

    +Gets the capture diagnostics log from the device and saves to defined file with pathname (e.g. /tmp/testSTM00019F3F9cap_diag.bin): +

    +
    +
    +
    # nvme wdc cap-diag /dev/nvme0 -o /tmp/test
    +
    +
  • +
  • +

    +Gets the capture diagnostics log from the device transferring the data in 64k chunks and saves to default file in current directory (e.g. STM00019F3F9internal_fw_log.bin): +

    +
    +
    +
    # nvme wdc cap-diag /dev/nvme0 -s 0x10000
    +
    +
  • +
  • +

    +Gets the capture diagnostics log from the device transferring the data in 16k chunks and saves to default file in current directory (e.g. STM00019F3F9internal_fw_log.bin): +

    +
    +
    +
    # nvme wdc cap-diag /dev/nvme0 -s 16384
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite.

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-cap-diag.txt b/Documentation/nvme-wdc-cap-diag.txt new file mode 100644 index 0000000..9439eaa --- /dev/null +++ b/Documentation/nvme-wdc-cap-diag.txt @@ -0,0 +1,64 @@ +nvme-wdc-cap-diag(1) +==================== + +NAME +---- +nvme-wdc-cap-diag - Retrieve WDC device's diagnostic log and save to file. + +SYNOPSIS +-------- +[verse] +'nvme wdc cap-diag' [--output-file=, -o ] [--transfer-size=, -s ] + +DESCRIPTION +----------- + +For the NVMe device given, sends the WDC Vendor Unique Capture-Diagnostics +request and saves the result to a file. + +The parameter is mandatory NVMe character device (ex: /dev/nvme0). + +This will only work on WDC devices supporting this feature. +Results for any other device are undefined. + +OPTIONS +------- +-o :: +--output-file=:: + Output file; defaults to device serial number followed by "cap_diag" suffix + +-s :: +--transfer-size=:: + Transfer size; defaults to 0x10000 (65536 decimal) bytes + +EXAMPLES +-------- +* Gets the capture diagnostics log from the device and saves to default file in current directory (e.g. STM00019F3F9cap_diag.bin): ++ +------------ +# nvme wdc cap-diag /dev/nvme0 +------------ +* Gets the capture diagnostics log from the device and saves to defined file in current directory (e.g. testSTM00019F3F9cap_diag.bin): ++ +------------ +# nvme wdc cap-diag /dev/nvme0 -o test +------------ +* Gets the capture diagnostics log from the device and saves to defined file with pathname (e.g. /tmp/testSTM00019F3F9cap_diag.bin): ++ +------------ +# nvme wdc cap-diag /dev/nvme0 -o /tmp/test +------------ +* Gets the capture diagnostics log from the device transferring the data in 64k chunks and saves to default file in current directory (e.g. STM00019F3F9internal_fw_log.bin): ++ +------------ +# nvme wdc cap-diag /dev/nvme0 -s 0x10000 +------------ +* Gets the capture diagnostics log from the device transferring the data in 16k chunks and saves to default file in current directory (e.g. STM00019F3F9internal_fw_log.bin): ++ +------------ +# nvme wdc cap-diag /dev/nvme0 -s 16384 +------------ + +NVME +---- +Part of the nvme-user suite. diff --git a/Documentation/nvme-wdc-clear-assert-dump.1 b/Documentation/nvme-wdc-clear-assert-dump.1 new file mode 100644 index 0000000..1f1569e --- /dev/null +++ b/Documentation/nvme-wdc-clear-assert-dump.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-wdc-clear-assert-dump +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-WDC\-CLEAR\-AS" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-wdc-clear-assert-dump \- Clears the assert dump (if present)\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme wdc clear\-assert\-dump\fR +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the wdc vendor unique clear assert dump command\&. +.sp +The parameter is mandatory and must be the NVMe character device (ex: /dev/nvme0)\&. +.sp +This will only work on WDC devices supporting this feature\&. The command will not be executed on devices that don\(cqt support it\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Clears the assert dump (if present): +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc clear\-assert\-dump /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-wdc-clear-assert-dump.html b/Documentation/nvme-wdc-clear-assert-dump.html new file mode 100644 index 0000000..b416976 --- /dev/null +++ b/Documentation/nvme-wdc-clear-assert-dump.html @@ -0,0 +1,805 @@ + + + + + + +nvme-wdc-clear-assert-dump(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc clear-assert-dump <device>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the wdc vendor unique clear assert +dump command.

+

The <device> parameter is mandatory and must be the NVMe character +device (ex: /dev/nvme0).

+

This will only work on WDC devices supporting this feature. +The command will not be executed on devices that don’t support it.

+
+
+
+

OPTIONS

+
+

None

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Clears the assert dump (if present): +

    +
    +
    +
    # nvme wdc clear-assert-dump /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-clear-assert-dump.txt b/Documentation/nvme-wdc-clear-assert-dump.txt new file mode 100644 index 0000000..a575089 --- /dev/null +++ b/Documentation/nvme-wdc-clear-assert-dump.txt @@ -0,0 +1,39 @@ +nvme-wdc-clear-assert-dump(1) +============================= + +NAME +---- +nvme-wdc-clear-assert-dump - Clears the assert dump (if present). + +SYNOPSIS +-------- +[verse] +'nvme wdc clear-assert-dump' + +DESCRIPTION +----------- +For the NVMe device given, sends the wdc vendor unique clear assert +dump command. + +The parameter is mandatory and must be the NVMe character +device (ex: /dev/nvme0). + +This will only work on WDC devices supporting this feature. +The command will not be executed on devices that don't support it. + +OPTIONS +------- +None + +EXAMPLES +-------- +* Clears the assert dump (if present): ++ +------------ +# nvme wdc clear-assert-dump /dev/nvme0 +------------ + + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-wdc-clear-fw-activate-history.1 b/Documentation/nvme-wdc-clear-fw-activate-history.1 new file mode 100644 index 0000000..0a0a999 --- /dev/null +++ b/Documentation/nvme-wdc-clear-fw-activate-history.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-wdc-clear-fw-activate-history +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-WDC\-CLEAR\-FW" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-wdc-clear-fw-activate-history \- Clears the firmware activate history table\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme wdc clear\-fw\-activate\-history\fR +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the wdc vendor unique clear fw activate history command\&. +.sp +The parameter is mandatory and must be the NVMe character device (ex: /dev/nvme0)\&. +.sp +This will only work on WDC devices supporting this feature\&. Results for any other device are undefined\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Clears the firmware activate history table: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc clear\-fw\-activate\-history /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-wdc-clear-fw-activate-history.html b/Documentation/nvme-wdc-clear-fw-activate-history.html new file mode 100644 index 0000000..b3f6488 --- /dev/null +++ b/Documentation/nvme-wdc-clear-fw-activate-history.html @@ -0,0 +1,804 @@ + + + + + + +nvme-wdc-clear-fw-activate-history(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc clear-fw-activate-history <device>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the wdc vendor unique clear fw activate +history command.

+

The <device> parameter is mandatory and must be the NVMe character device (ex: /dev/nvme0).

+

This will only work on WDC devices supporting this feature. +Results for any other device are undefined.

+
+
+
+

OPTIONS

+
+

None

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Clears the firmware activate history table: +

    +
    +
    +
    # nvme wdc clear-fw-activate-history /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-clear-fw-activate-history.txt b/Documentation/nvme-wdc-clear-fw-activate-history.txt new file mode 100644 index 0000000..50be1e9 --- /dev/null +++ b/Documentation/nvme-wdc-clear-fw-activate-history.txt @@ -0,0 +1,38 @@ +nvme-wdc-clear-fw-activate-history(1) +===================================== + +NAME +---- +nvme-wdc-clear-fw-activate-history - Clears the firmware activate history table. + +SYNOPSIS +-------- +[verse] +'nvme wdc clear-fw-activate-history' + +DESCRIPTION +----------- +For the NVMe device given, sends the wdc vendor unique clear fw activate +history command. + +The parameter is mandatory and must be the NVMe character device (ex: /dev/nvme0). + +This will only work on WDC devices supporting this feature. +Results for any other device are undefined. + +OPTIONS +------- +None + +EXAMPLES +-------- +* Clears the firmware activate history table: ++ +------------ +# nvme wdc clear-fw-activate-history /dev/nvme0 +------------ + + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-wdc-clear-pcie-corr.1 b/Documentation/nvme-wdc-clear-pcie-corr.1 new file mode 100644 index 0000000..6e5989d --- /dev/null +++ b/Documentation/nvme-wdc-clear-pcie-corr.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-wdc-clear-pcie-corr +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 01/08/2019 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-WDC\-CLEAR\-PC" "1" "01/08/2019" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-wdc-clear-pcie-corr \- Clears the pcie correctable errors field returned in the smart\-log\-add command\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme wdc clear\-pcie\-corr\fR +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the wdc vendor unique clear pcie correctable errors command\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +This will only work on WDC devices supporting this feature\&. Results for any other device are undefined\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Clears the PCIe Correctable Error Count field returned in the smart\-log\-add command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc clear\-pcie\-corr /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-wdc-clear-pcie-corr.html b/Documentation/nvme-wdc-clear-pcie-corr.html new file mode 100644 index 0000000..3e8a4a9 --- /dev/null +++ b/Documentation/nvme-wdc-clear-pcie-corr.html @@ -0,0 +1,806 @@ + + + + + + +nvme-wdc-clear-pcie-corr(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc clear-pcie-corr <device>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the wdc vendor unique clear pcie +correctable errors command.

+

The <device> parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1).

+

This will only work on WDC devices supporting this feature. +Results for any other device are undefined.

+
+
+
+

OPTIONS

+
+

None

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Clears the PCIe Correctable Error Count field returned in the smart-log-add command: +

    +
    +
    +
    # nvme wdc clear-pcie-corr /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-clear-pcie-correctable-errors.1 b/Documentation/nvme-wdc-clear-pcie-correctable-errors.1 new file mode 100644 index 0000000..1f45364 --- /dev/null +++ b/Documentation/nvme-wdc-clear-pcie-correctable-errors.1 @@ -0,0 +1,71 @@ +'\" t +.\" Title: nvme-wdc-clear-pcie-correctable-errors +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-WDC\-CLEAR\-PC" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-wdc-clear-pcie-correctable-errors \- Clears the pcie correctable errors field returned in the smart\-log\-add command\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme wdc clear\-pcie\-correctable\-errors\fR +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, sends the wdc vendor unique clear pcie correctable errors command\&. +.sp +The parameter is mandatory and may be either the NVMe character device (ex: /dev/nvme0), or a namespace block device (ex: /dev/nvme0n1)\&. +.sp +This will only work on WDC devices supporting this feature\&. Results for any other device are undefined\&. +.SH "OPTIONS" +.sp +None +.SH "EXAMPLES" +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Clears the PCIe Correctable Error Count field returned in the smart\-log\-add command: +.sp +.if n \{\ +.RS 4 +.\} +.nf +# nvme wdc clear\-pcie\-correctable\-errors /dev/nvme0 +.fi +.if n \{\ +.RE +.\} +.RE +.SH "NVME" +.sp +Part of the nvme\-user suite diff --git a/Documentation/nvme-wdc-clear-pcie-correctable-errors.html b/Documentation/nvme-wdc-clear-pcie-correctable-errors.html new file mode 100644 index 0000000..37929c6 --- /dev/null +++ b/Documentation/nvme-wdc-clear-pcie-correctable-errors.html @@ -0,0 +1,802 @@ + + + + + +nvme-wdc-clear-pcie-correctable-errors(1) + + + + + +
+
+

SYNOPSIS

+
+
+
nvme wdc clear-pcie-correctable-errors <device>
+
+
+
+
+
+

DESCRIPTION

+
+

For the NVMe device given, sends the wdc vendor unique clear pcie +correctable errors command.

+

The <device> parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1).

+

This will only work on WDC devices supporting this feature. +Results for any other device are undefined.

+
+
+
+

OPTIONS

+
+

None

+
+
+
+

EXAMPLES

+
+
    +
  • +

    +Clears the PCIe Correctable Error Count field returned in the smart-log-add command: +

    +
    +
    +
    # nvme wdc clear-pcie-correctable-errors /dev/nvme0
    +
    +
  • +
+
+
+
+

NVME

+
+

Part of the nvme-user suite

+
+
+
+

+ + + diff --git a/Documentation/nvme-wdc-clear-pcie-correctable-errors.txt b/Documentation/nvme-wdc-clear-pcie-correctable-errors.txt new file mode 100644 index 0000000..4788f1f --- /dev/null +++ b/Documentation/nvme-wdc-clear-pcie-correctable-errors.txt @@ -0,0 +1,40 @@ +nvme-wdc-clear-pcie-correctable-errors(1) +========================================= + +NAME +---- +nvme-wdc-clear-pcie-correctable-errors - Clears the pcie correctable errors field returned in the smart-log-add command. + +SYNOPSIS +-------- +[verse] +'nvme wdc clear-pcie-correctable-errors' + +DESCRIPTION +----------- +For the NVMe device given, sends the wdc vendor unique clear pcie +correctable errors command. + +The parameter is mandatory and may be either the NVMe +character device (ex: /dev/nvme0), or a namespace block device (ex: +/dev/nvme0n1). + +This will only work on WDC devices supporting this feature. +Results for any other device are undefined. + +OPTIONS +------- +None + +EXAMPLES +-------- +* Clears the PCIe Correctable Error Count field returned in the smart-log-add command: ++ +------------ +# nvme wdc clear-pcie-correctable-errors /dev/nvme0 +------------ + + +NVME +---- +Part of the nvme-user suite diff --git a/Documentation/nvme-wdc-drive-essentials.1 b/Documentation/nvme-wdc-drive-essentials.1 new file mode 100644 index 0000000..e0a2902 --- /dev/null +++ b/Documentation/nvme-wdc-drive-essentials.1 @@ -0,0 +1,95 @@ +'\" t +.\" Title: nvme-wdc-drive-essentials +.\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] +.\" Generator: DocBook XSL Stylesheets vsnapshot +.\" Date: 04/24/2020 +.\" Manual: NVMe Manual +.\" Source: NVMe +.\" Language: English +.\" +.TH "NVME\-WDC\-DRIVE\-ES" "1" "04/24/2020" "NVMe" "NVMe Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +nvme-wdc-drive-essentials \- Retrieve WDC device\*(Aqs drive essentials bin files and save to a tar file\&. +.SH "SYNOPSIS" +.sp +.nf +\fInvme wdc drive\-essentials\fR [\-\-dir\-name=, \-d ] +.fi +.SH "DESCRIPTION" +.sp +For the NVMe device given, captures the drive essential bin files and saves them into a tar file\&. The tar file will be in the following format: DRIVE_ESSENTIALS____