From 8d843cc9cc0e989d3929f204f77223cd08730c7a Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 24 Dec 2023 08:51:48 +0100 Subject: Merging upstream version 1.7.1. Signed-off-by: Daniel Baumann --- doc/rst/linux.rst | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) (limited to 'doc/rst/linux.rst') diff --git a/doc/rst/linux.rst b/doc/rst/linux.rst index b437499..819ee68 100644 --- a/doc/rst/linux.rst +++ b/doc/rst/linux.rst @@ -53,6 +53,68 @@ The nvme command status if a response was received (see Data Area 4 +.. c:function:: int nvme_get_telemetry_max (int fd, enum nvme_telemetry_da *da, size_t *max_data_tx) + + Get telemetry limits + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``enum nvme_telemetry_da *da`` + On success return max supported data area + +``size_t *max_data_tx`` + On success set to max transfer chunk supported by the controller + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + +.. c:function:: int nvme_get_telemetry_log (int fd, bool create, bool ctrl, bool rae, size_t max_data_tx, enum nvme_telemetry_da da, struct nvme_telemetry_log **log, size_t *size) + + Get specified telemetry log + +**Parameters** + +``int fd`` + File descriptor of nvme device + +``bool create`` + Generate new host initated telemetry capture + +``bool ctrl`` + Get controller Initiated log + +``bool rae`` + Retain asynchronous events + +``size_t max_data_tx`` + Set the max data transfer size to be used retrieving telemetry. + +``enum nvme_telemetry_da da`` + Log page data area, valid values: :c:type:`enum nvme_telemetry_da `. + +``struct nvme_telemetry_log **log`` + On success, set to the value of the allocated and retrieved log. + +``size_t *size`` + Ptr to the telemetry log size, so it can be returned + +**Description** + +The total size allocated can be calculated as: + (nvme_telemetry_log da size + 1) * NVME_LOG_TELEM_BLOCK_SIZE. + +**Return** + +The nvme command status if a response was received (see +:c:type:`enum nvme_status_field `) or -1 with errno set otherwise. + + .. c:function:: int nvme_get_ctrl_telemetry (int fd, bool rae, struct nvme_telemetry_log **log, enum nvme_telemetry_da da, size_t *size) Get controller telemetry log @@ -439,3 +501,80 @@ The key serial number if the key could be inserted into the keyring or 0 with errno otherwise. +.. c:function:: long nvme_insert_tls_key_versioned (const char *keyring, const char *key_type, const char *hostnqn, const char *subsysnqn, int version, int hmac, unsigned char *configured_key, int key_len) + + Derive and insert TLS key + +**Parameters** + +``const char *keyring`` + Keyring to use + +``const char *key_type`` + Type of the resulting key + +``const char *hostnqn`` + Host NVMe Qualified Name + +``const char *subsysnqn`` + Subsystem NVMe Qualified Name + +``int version`` + Key version to use + +``int hmac`` + HMAC algorithm + +``unsigned char *configured_key`` + Configured key data to derive the key from + +``int key_len`` + Length of **configured_key** + +**Description** + +Derives a 'retained' TLS key as specified in NVMe TCP 1.0a (if +**version** s set to '0') or NVMe TP8028 (if **version** is set to '1) and +stores it as type **key_type** in the keyring specified by **keyring**. + +**Return** + +The key serial number if the key could be inserted into +the keyring or 0 with errno otherwise. + + +.. c:function:: char * nvme_generate_tls_key_identity (const char *hostnqn, const char *subsysnqn, int version, int hmac, unsigned char *configured_key, int key_len) + + Generate the TLS key identity + +**Parameters** + +``const char *hostnqn`` + Host NVMe Qualified Name + +``const char *subsysnqn`` + Subsystem NVMe Qualified Name + +``int version`` + Key version to use + +``int hmac`` + HMAC algorithm + +``unsigned char *configured_key`` + Configured key data to derive the key from + +``int key_len`` + Length of **configured_key** + +**Description** + +Derives a 'retained' TLS key as specified in NVMe TCP and +generate the corresponding TLs identity. + +**Return** + +The string containing the TLS identity. It is the responsibility +of the caller to free the returned string. + + -- cgit v1.2.3