NVME-SECURITY-SEND(1)
π NVME-SECURITY-SEND(1) β the security send glow-up
okay so bestie, welcome to NVME-SECURITY-SEND(1), straight out of the NVMe Manual β¨ this is the page for the Security Send command and it's lowkey iconic.
πΈ NAME πΈ
nvme-security-send β the Security Send command, literally
β¨ SYNOPSIS β¨
nvme [<global-options>] 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 π¦
So what does this even do? The Security Send command ships security protocol data over to the controller. The data structure that gets transferred to the controller as part of this command contains security protocol specific commands that the controller is supposed to perform. That same data structure may also carry data or parameters associated with those security protocol commands. And any status and data that should be sent back to the host for the security protocol commands you submitted via a Security Send command? That's what you grab with the Security Receive command. π
The association between a Security Send command and the subsequent Security Receive command is Security Protocol field dependent, as defined in SPC-4. iykyk π
β οΈ heads up bestie β the barenvme security-sendform (no space, hyphenated) still works as a deprecated alias and is gonna get removed in a future major version. So if you're writing new scripts, usenvme security sendinstead, periodt. π
π OPTIONS π
-n <nsid>,--namespace-id=<nsid>β target a specific namespace for this security command. The broadcast value0xffffffffcan also be written asallor-1. choose your fighter π-N <nssf>,--nssf=<nssf>β the NVMe Security Specific field. If you're using security protocolEAh(the one assigned for NVMe use), this NVMe security specific field tells you which reply memory buffer target. π―-f <file>,--file=<file>β path to the file used as the security protocol's payload. this one is a required argument, no skipping it, fr fr. π-p <security-protocol>,--secp=<security-protocol>β Security Protocol: this field specifies the security protocol as defined in SPC-4. If you specify a reserved value of the Security Protocol, the controller shall fail the command with Invalid Parameter indicated. so don't do that π-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. π
π GLOBAL OPTIONS π
These ones live at the top-level nvme command and are available to this subcommand too β main character energy, honestly:
--dry-runβ print the command that would be executed, but don't actually execute it. window shopping for commands ποΈ--no-ioctl-probingβ disable probing for 64-bit IOCTL support.--no-retriesβ disable retry logic on transient errors. one shot, no take-backs π-o <fmt>,--output-format=<fmt>β set the reporting format tonormal,tabular,'json, orbinary. only one output format may be used at a time, pick a lane bestie.--output-format-version=<version>β select the output format version. Version 1 uses the original field naming, while version 2 (the default) provides more consistent and script-friendly field names. Other versions are rejected. π«--quietβ suppress informational messages. Errors are still reported, and--quietcancels any--verbosefor the library log level. shhh π€«--set-options=<key=value>[,<key=value>...]β set libnvme library options for this invocation. The supported keys areforce-4k,mi-probe-enabled,test-base-dirandtest-sysfs-dir. π§--timeout=<ms>β set the timeout for the command in milliseconds.infiniteor-1waits without a time limit (0xffffffff). patience is a virtue β³-v,--verboseβ increase the level of detail in the output. May be specified multiple times to further increase verbosity. the way that it stacks π
π‘ these options can also be set as machine-wide defaults in nvme-cli.conf(5). a command-line flag always overrides the file β flags stay winning π
π₯ EXAMPLES π₯
No Examples
(yeah. that's it. no examples. we're all just vibing off the synopsis, ngl π«Ά)
π NVME π
Part of the nvme-user suite. slay.
and that's the whole page, bestie β NVMe source, version date 10/30/2026, and honestly? iconic of it. go send some security, but like, responsibly. π β¨π
π¦ where this page comes from
- arch rolling: nvme-cli 3.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms