SYNOPSIS

nvme [<global-options>] ocp internal-log <device>
                        [--telemetry-log=<file> | -l <file>]
                        [--string-log=<file> | -s <file>]
                        [--output-file=<file> | -f <file>]
                        [--data-area=<da> | -a <da>]
                        [--telemetry-type=<type> | -t <type>]
                        [--host-generate=<gen> | -g <gen>]
                        [--no-uuid | -n]

DESCRIPTION

Conditionally retrieves 07h Telemetry Host-Initiated log, C9h OCP Strings Log from an NVMe device or from user-specified file path. Takes retrieved logs and decodes (or) parses into human-readable output format specified by user. Without --output-format, the report is written as JSON to <file>.json, or as normal text to <file>.txt when nvme-cli is built without json-c.

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 OCP compliant devices supporting this feature. Results for any other device are undefined.

On success it returns 0, error code otherwise.

OPTIONS

-l <file>
--telemetry-log=<file>

File name to existing Telemetry Host- or Controller-Initiated raw binary data to be used. If no path is specified, a live retrieval of payload on <device> will be performed.

-s <file>
--string-log=<file>

File name to existing OCP String Log raw binary data to be used. If no path is specified, a live retrieval of payload on <device> will be performed.

-f <file>
--output-file=<file>

Filepath name used as the prefix for the telemetry and string log bin files along with the human-readable parsed output file.

-a <da>
--data-area=<da>

Retrieves the specific data area requested. Valid inputs are 1, 2, 3, or 4. If this option is not specified, the default value is 1.

-t <type>
--telemetry-type=<type>

Set the telemetry type to host or controller. With --telemetry-log, the type is detected from the Log Identifier of the provided log, and --telemetry-type is not required. Otherwise, if this option is not specified, the default value is host. host0 and host1 are deprecated and will be removed in the next major version; use host with --host-generate=0 in place of host0.

-g <gen>
--host-generate=<gen>

If set to 1, the 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 set to 0, the controller shall not update this data before reading the log. Ignored with --telemetry-type=controller. If this option is not specified, the default value is 1.

-n
--no-uuid

Do not try to automatically detect UUID index when retrieving the OCP String Log from <device> (default UUID index to 0).

GLOBAL OPTIONS

The following options are defined at the top-level nvme command and are available to this subcommand:

--dry-run

Print the command that would be executed, but do not actually execute it.

--no-ioctl-probing

Disable probing for 64-bit IOCTL support.

--no-retries

Disable retry logic on transient errors.

-o <fmt>
--output-format=<fmt>

Set the reporting format to normal, tabular, 'json, or binary. Only one output format may be used at a time.

--output-format-version=<version>

Select the output format version. Version 1 uses the original field naming, while version 2 (default) provides more consistent and script-friendly field names. Other versions are rejected.

--quiet

Suppress informational messages. Errors are still reported, and --quiet cancels any --verbose for the library log level.

--set-options=<key=value>[,<key=value>…]

Set libnvme library options for this invocation. Supported keys are force-4k, mi-probe-enabled, test-base-dir and test-sysfs-dir.

--timeout=<ms>

Set the timeout for the command in milliseconds. infinite or -1 waits without a time limit (0xffffffff).

-v
--verbose

Increase the level of detail in the output. May be specified multiple times to further increase verbosity.

These options can also be set as machine-wide defaults in nvme-cli.conf(5). A command-line flag always overrides the file.

EXAMPLES

  • Retrieve both OCP String Log and Telemetry Host-Initiated Log from device. Decode default data-area(s) and output to the default ./telemetry-log.json.

    # nvme ocp internal-log /dev/nvme0
  • Retrieve the OCP String Log and the existing Telemetry Host-Initiated data without having the controller capture new data. Decode default data-area(s) and output to the default ./telemetry-log.json.

    # nvme ocp internal-log /dev/nvme0 --host-generate=0
  • Retrieve Telemetry Host-Initiated data, reads in the OCP String Log locally. Decode default data-area(s) in default format.

    # nvme ocp internal-log /dev/nvme0 --string-log=ocp_string_log.bin
     --output-file=output_file.json
  • Retrieve OCP String Log, reads in the Telemetry Host-Initiated Log locally. Decode data-areas 1 and 2, and output in json format.

    # nvme ocp internal-log /dev/nvme0 --telemetry-log=host_telemetry.bin
     --output-format=json --output-file=output_file.json --data-area=2
  • Reads in both OCP String Log and Telemetry Host-Initiated Log locally. Decode data-areas 1 and 2, and output in normal text format.

    # nvme ocp internal-log /dev/nvme0 --string-log=ocp_string_log.bin
     --telemetry-log=host_telemetry.bin --output-format=normal
     --output-file=output_file.txt --data-area=2

NVME

Part of the nvme-user suite