[\-\-anagrp\-id=<anagrpid> | \-a <anagrpid>]
[\-\-nvmset\-id=<nvmsetid> | \-i <nvmsetid>]
[\-\-csi=<command_set_identifier> | \-y <command_set_identifier>]
+ [\-\-lbstm=<lbstm> | \-l <lbstm>]
[\-\-block\-size=<block\-size> | \-b <block\-size>]
[\-\-timeout=<timeout> | \-t <timeout>]
DESCRIPTION
This field specifies the identifier of command set\&. if not issued, NVM Command Set will be selected\&.
.RE
.PP
+\-l <lbstm>, \-\-lbstm=<lbstm>
+.RS 4
+Logical Block Storage Tag Mask for end-to-end protection\&.
+.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\&.
[--anagrp-id=<anagrpid> | -a <anagrpid>]\r
[--nvmset-id=<nvmsetid> | -i <nvmsetid>]\r
[--csi=<command_set_identifier> | -y <command_set_identifier>]\r
+ [--lbstm=<lbstm> | -l <lbstm>]\r
[--block-size=<block-size> | -b <block-size>]\r
[--timeout=<timeout> | -t <timeout>]\r
DESCRIPTION</pre>\r
</p>\r
</dd>\r
<dt class="hdlist1">\r
+-l <lbstm>\r
+</dt>\r
+<dt class="hdlist1">\r
+--lbstm=<lbstm>\r
+</dt>\r
+<dd>\r
+<p>\r
+ Logical Block Storage Tag Mask for end-to-end protection.\r
+</p>\r
+</dd>\r
+<dt class="hdlist1">\r
-b\r
</dt>\r
<dt class="hdlist1">\r
[--anagrp-id=<anagrpid> | -a <anagrpid>]
[--nvmset-id=<nvmsetid> | -i <nvmsetid>]
[--csi=<command_set_identifier> | -y <command_set_identifier>]
+ [--lbstm=<lbstm> | -l <lbstm>]
[--block-size=<block-size> | -b <block-size>]
[--timeout=<timeout> | -t <timeout>]
DESCRIPTION
This field specifies the identifier of command set.
if not issued, NVM Command Set will be selected.
+-l <lbstm>::
+--lbstm=<lbstm>::
+ Logical Block Storage Tag Mask for end-to-end protection.
+
-b::
--block-size::
Target block size the new namespace should be formatted as. Potential FLBAS
const char *anagrpid = "ANA Group Identifier (ANAGRPID)";
const char *nvmsetid = "NVM Set Identifier (NVMSETID)";
const char *csi = "command set identifier (CSI)";
+ const char *lbstm = "logical block storage tag mask (LBSTM)";
const char *timeout = "timeout value, in milliseconds";
const char *bs = "target block size, specify only if \'FLBAS\' "\
"value not entered";
__u64 bs;
__u32 timeout;
__u8 csi;
+ __u64 lbstm;
};
struct config cfg = {
.bs = 0x00,
.timeout = 120000,
.csi = 0,
+ .lbstm = 0,
};
OPT_ARGS(opts) = {
OPT_SUFFIX("block-size", 'b', &cfg.bs, bs),
OPT_UINT("timeout", 't', &cfg.timeout, timeout),
OPT_BYTE("csi", 'y', &cfg.csi, csi),
+ OPT_SUFFIX("lbstm", 'l', &cfg.lbstm, lbstm),
OPT_END()
};
goto close_fd;
}
- nvme_init_id_ns(&ns, cfg.nsze, cfg.ncap, cfg.flbas, cfg.dps, cfg.nmic,
- cfg.anagrpid, cfg.nvmsetid);
- err = nvme_ns_mgmt_create(fd, &ns, &nsid, cfg.timeout, cfg.csi);
+ struct nvme_id_ns ns2 = {
+ .nsze = cpu_to_le64(cfg.nsze),
+ .ncap = cpu_to_le64(cfg.ncap),
+ .flbas = cfg.flbas,
+ .dps = cfg.dps,
+ .nmic = cfg.nmic,
+ .anagrpid = cpu_to_le32(cfg.anagrpid),
+ .nvmsetid = cpu_to_le16(cfg.nvmsetid),
+ .lbstm = cpu_to_le64(cfg.lbstm),
+ };
+
+ err = nvme_ns_mgmt_create(fd, &ns2, &nsid, cfg.timeout, cfg.csi);
if (!err)
printf("%s: Success, created nsid:%d\n", cmd->name, nsid);
else if (err > 0)