'\" t
.\"     Title: nvme-copy
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 05/03/2024
.\"    Manual: NVMe Manual
.\"    Source: NVMe
.\"  Language: English
.\"
.TH "NVME\-COPY" "1" "05/03/2024" "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-copy \- Send an NVMe Simple Copy command, provide results
.SH "SYNOPSIS"
.sp
.nf
\fInvme\-copy\fR <device> [\-\-sdlba=<sdlba> | \-d <sdlba>]
                        [\-\-blocks=<nlb\-list,> | \-b <nlb\-list,>]
                        [\-\-slbs=<slbas,> | \-s <slbas,>]
                        [\-\-snsids=<snsids,> | \-N <snsids,>]
                        [\-\-sopts=<sopts,> | \-O <sopts,>]
                        [\-\-limited\-retry | \-l]
                        [\-\-force\-unit\-access | \-f]
                        [\-\-prinfow=<prinfow> | \-p <prinfow>]
                        [\-\-prinfor=<prinfor> | \-P <prinfor>]
                        [\-\-ref\-tag=<reftag> | \-r <reftag>]
                        [\-\-expected\-ref\-tags=<reftag,> | \-R <reftag,>]
                        [\-\-app\-tag=<apptag> | \-a <apptag>]
                        [\-\-expected\-app\-tags=<apptag,> | \-A <apptag,>]
                        [\-\-app\-mask=<appmask> | \-m <appmask>]
                        [\-\-expected\-app\-masks=<appmask,> | \-M <appmask,>]
                        [\-\-dir\-type=<type> | \-T <type>]
                        [\-\-dir\-spec=<spec> | \-S <spec>]
                        [\-\-format=<entry\-format> | \-F <entry\-format>]
                        [\-\-output\-format=<fmt> | \-o <fmt>] [\-\-verbose | \-v]
.fi
.SH "DESCRIPTION"
.sp
The Copy command is used by the host to copy data from one or more source logical block ranges to a single consecutive destination logical block range\&.
.SH "OPTIONS"
.PP
\-d <sdlba>, \-\-sdlba=<sdlba>
.RS 4
64\-bit addr of first destination logical block
.RE
.PP
\-b <nlb\-list,>, \-\-blocks=<nlb\-list,>
.RS 4
Comma separated list of the number of blocks in each range
.RE
.PP
\-s <slbas,>, \-\-slbs=<slbas,>
.RS 4
Comma separated list of the starting blocks in each range
.RE
.PP
\-\-snsids=<snsids,>, \-N <snsids,>
.RS 4
Comma separated list of the source namespace identifiers in each range
.RE
.PP
\-\-sopts=<sopts,>, \-O <sopts,>
.RS 4
Comma separated list of the source options in each range
.RE
.PP
\-l, \-\-limited\-retry
.RS 4
Sets the limited retry flag\&.
.RE
.PP
\-f, \-\-force\-unit\-access
.RS 4
Set the force\-unit access flag\&.
.RE
.PP
\-p <prinfow>, \-\-prinfow=<prinfow>
.RS 4
Protection Information field write definition\&.
.RE
.PP
\-P <prinfor>, \-\-prinfor=<prinfor>
.RS 4
Protection Information field read definition\&.
.RE
.PP
\-r <reftag>, \-\-ref\-tag=<reftag>
.RS 4
initial lba reference tag\&.
.RE
.PP
\-R <reftag,>, \-\-expected\-ref\-tags=<reftag,>
.RS 4
expected lba reference tags (comma\-separated list)\&.
.RE
.PP
\-a <apptag>, \-\-app\-tag=<apptag>
.RS 4
lba app tag
.RE
.PP
\-A <apptag,>, \-\-expected\-app\-tags=<apptag,>
.RS 4
expected lba app tags (comma\-separated list)
.RE
.PP
\-m <appmask>, \-\-app\-mask=<appmask>
.RS 4
lba tag mask
.RE
.PP
\-M <appmask,>, \-\-expected\-app\-masks=<appmask,>
.RS 4
expected lba tag masks (comma\-separated list)
.RE
.PP
\-T <type>, \-\-dir\-type=<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 specification (1\&.3a) defines only one directive, 01h, for write stream identifiers\&.
.RE
.PP
\-S <spec>, \-\-dir\-spec=<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
\-F <entry\-format>, \-\-format=<entry\-format>
.RS 4
source range entry format
.RE
.PP
\-o <fmt>, \-\-output\-format=<fmt>
.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
\-v, \-\-verbose
.RS 4
Increase the information detail in the output\&.
.RE
.SH "EXAMPLES"
.sp
No examples yet\&.
.SH "NVME"
.sp
Part of the nvme\-user suite