Merging upstream version 1.7.1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
41144a7301
commit
476f38f2bb
878 changed files with 2965 additions and 1746 deletions
|
@ -501,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.
|
||||
|
||||
|
||||
|
|
|
@ -1618,6 +1618,18 @@ power scale value
|
|||
If set, then the controller supports
|
||||
the copy command.
|
||||
|
||||
``NVME_CTRL_ONCS_COPY_SINGLE_ATOMICITY``
|
||||
If set, then the write portion of a
|
||||
Copy command is performed as a single
|
||||
write command to which the same
|
||||
atomicity requirements that apply to
|
||||
a write command apply.
|
||||
|
||||
``NVME_CTRL_ONCS_ALL_FAST_COPY``
|
||||
If set, then all copy operations for
|
||||
the Copy command are fast copy
|
||||
operations.
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1892,8 +1904,7 @@ power scale value
|
|||
__u8 nguid[16];
|
||||
__u8 eui64[8];
|
||||
struct nvme_lbaf lbaf[64];
|
||||
__le64 lbstm;
|
||||
__u8 vs[3704];
|
||||
__u8 vs[3712];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
@ -2076,9 +2087,6 @@ power scale value
|
|||
``lbaf``
|
||||
LBA Format, see :c:type:`struct nvme_lbaf <nvme_lbaf>`.
|
||||
|
||||
``lbstm``
|
||||
Logical Block Storage Tag Mask for end-to-end protection
|
||||
|
||||
``vs``
|
||||
Vendor Specific
|
||||
|
||||
|
@ -7461,7 +7469,11 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
struct nvme_feat_host_behavior {
|
||||
__u8 acre;
|
||||
__u8 rsvd1[511];
|
||||
__u8 etdas;
|
||||
__u8 lbafee;
|
||||
__u8 rsvd3;
|
||||
__u16 cdfe;
|
||||
__u8 rsvd6[506];
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
@ -7469,7 +7481,19 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
``acre``
|
||||
Advanced Command Retry Enable
|
||||
|
||||
``rsvd1``
|
||||
``etdas``
|
||||
Extended Telemetry Data Area 4 Supported
|
||||
|
||||
``lbafee``
|
||||
LBA Format Extension Enable
|
||||
|
||||
``rsvd3``
|
||||
Reserved
|
||||
|
||||
``cdfe``
|
||||
Copy Descriptor Formats Enable
|
||||
|
||||
``rsvd6``
|
||||
Reserved
|
||||
|
||||
|
||||
|
@ -7609,6 +7633,130 @@ bytes, in size. This log captures the controller’s internal state.
|
|||
|
||||
|
||||
|
||||
.. c:enum:: nvme_copy_range_sopt
|
||||
|
||||
NVMe Copy Range Source Options
|
||||
|
||||
**Constants**
|
||||
|
||||
``NVME_COPY_SOPT_FCO``
|
||||
NVMe Copy Source Option Fast Copy Only
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_copy_range_f2
|
||||
|
||||
Copy - Source Range Entries Descriptor Format 2h
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_copy_range_f2 {
|
||||
__le32 snsid;
|
||||
__u8 rsvd4[4];
|
||||
__le64 slba;
|
||||
__le16 nlb;
|
||||
__u8 rsvd18[4];
|
||||
__le16 sopt;
|
||||
__le32 eilbrt;
|
||||
__le16 elbat;
|
||||
__le16 elbatm;
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``snsid``
|
||||
Source Namespace Identifier
|
||||
|
||||
``rsvd4``
|
||||
Reserved
|
||||
|
||||
``slba``
|
||||
Starting LBA
|
||||
|
||||
``nlb``
|
||||
Number of Logical Blocks
|
||||
|
||||
``rsvd18``
|
||||
Reserved
|
||||
|
||||
``sopt``
|
||||
Source Options
|
||||
|
||||
``eilbrt``
|
||||
Expected Initial Logical Block Reference Tag /
|
||||
Expected Logical Block Storage Tag
|
||||
|
||||
``elbat``
|
||||
Expected Logical Block Application Tag
|
||||
|
||||
``elbatm``
|
||||
Expected Logical Block Application Tag Mask
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_copy_range_f3
|
||||
|
||||
Copy - Source Range Entries Descriptor Format 3h
|
||||
|
||||
**Definition**
|
||||
|
||||
::
|
||||
|
||||
struct nvme_copy_range_f3 {
|
||||
__le32 snsid;
|
||||
__u8 rsvd4[4];
|
||||
__le64 slba;
|
||||
__le16 nlb;
|
||||
__u8 rsvd18[4];
|
||||
__le16 sopt;
|
||||
__u8 rsvd24[2];
|
||||
__u8 elbt[10];
|
||||
__le16 elbat;
|
||||
__le16 elbatm;
|
||||
};
|
||||
|
||||
**Members**
|
||||
|
||||
``snsid``
|
||||
Source Namespace Identifier
|
||||
|
||||
``rsvd4``
|
||||
Reserved
|
||||
|
||||
``slba``
|
||||
Starting LBA
|
||||
|
||||
``nlb``
|
||||
Number of Logical Blocks
|
||||
|
||||
``rsvd18``
|
||||
Reserved
|
||||
|
||||
``sopt``
|
||||
Source Options
|
||||
|
||||
``rsvd24``
|
||||
Reserved
|
||||
|
||||
``elbt``
|
||||
Expected Initial Logical Block Reference Tag /
|
||||
Expected Logical Block Storage Tag
|
||||
|
||||
``elbat``
|
||||
Expected Logical Block Application Tag
|
||||
|
||||
``elbatm``
|
||||
Expected Logical Block Application Tag Mask
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.. c:struct:: nvme_registered_ctrl
|
||||
|
||||
Registered Controller Data Structure
|
||||
|
@ -10162,6 +10310,29 @@ entries are of a variable lengths (TEL), TEL is always a multiple of
|
|||
``NVME_SC_CMD_SIZE_LIMIT_EXCEEDED``
|
||||
Command Size Limit Exceeded
|
||||
|
||||
``NVME_SC_INCOMPATIBLE_NS``
|
||||
Incompatible Namespace or Format: At
|
||||
least one source namespace and the
|
||||
destination namespace have incompatible
|
||||
formats.
|
||||
|
||||
``NVME_SC_FAST_COPY_NOT_POSSIBLE``
|
||||
Fast Copy Not Possible: The Fast Copy
|
||||
Only (FCO) bit was set to ‘1’ in a Source
|
||||
Range entry and the controller was not
|
||||
able to use fast copy operations to copy
|
||||
the specified data.
|
||||
|
||||
``NVME_SC_OVERLAPPING_IO_RANGE``
|
||||
Overlapping I/O Range: A source logical
|
||||
block range overlaps the destination
|
||||
logical block range.
|
||||
|
||||
``NVME_SC_INSUFFICIENT_RESOURCES``
|
||||
Insufficient Resources: A resource
|
||||
shortage prevented the controller from
|
||||
performing the requested copy.
|
||||
|
||||
``NVME_SC_CONNECT_FORMAT``
|
||||
Incompatible Format: The NVM subsystem
|
||||
does not support the record format
|
||||
|
|
|
@ -233,6 +233,74 @@ otherwise.
|
|||
Number of descriptors to construct
|
||||
|
||||
|
||||
.. c:function:: void nvme_init_copy_range_f2 (struct nvme_copy_range_f2 *copy, __u32 *snsids, __u16 *nlbs, __u64 *slbas, __u16 *sopts, __u32 *eilbrts, __u32 *elbatms, __u32 *elbats, __u16 nr)
|
||||
|
||||
Constructs a copy range f2 structure
|
||||
|
||||
**Parameters**
|
||||
|
||||
``struct nvme_copy_range_f2 *copy``
|
||||
Copy range array
|
||||
|
||||
``__u32 *snsids``
|
||||
Source namespace identifier
|
||||
|
||||
``__u16 *nlbs``
|
||||
Number of logical blocks
|
||||
|
||||
``__u64 *slbas``
|
||||
Starting LBA
|
||||
|
||||
``__u16 *sopts``
|
||||
Source options
|
||||
|
||||
``__u32 *eilbrts``
|
||||
Expected initial logical block reference tag
|
||||
|
||||
``__u32 *elbatms``
|
||||
Expected logical block application tag mask
|
||||
|
||||
``__u32 *elbats``
|
||||
Expected logical block application tag
|
||||
|
||||
``__u16 nr``
|
||||
Number of descriptors to construct
|
||||
|
||||
|
||||
.. c:function:: void nvme_init_copy_range_f3 (struct nvme_copy_range_f3 *copy, __u32 *snsids, __u16 *nlbs, __u64 *slbas, __u16 *sopts, __u64 *eilbrts, __u32 *elbatms, __u32 *elbats, __u16 nr)
|
||||
|
||||
Constructs a copy range f3 structure
|
||||
|
||||
**Parameters**
|
||||
|
||||
``struct nvme_copy_range_f3 *copy``
|
||||
Copy range array
|
||||
|
||||
``__u32 *snsids``
|
||||
Source namespace identifier
|
||||
|
||||
``__u16 *nlbs``
|
||||
Number of logical blocks
|
||||
|
||||
``__u64 *slbas``
|
||||
Starting LBA
|
||||
|
||||
``__u16 *sopts``
|
||||
Source options
|
||||
|
||||
``__u64 *eilbrts``
|
||||
Expected initial logical block reference tag
|
||||
|
||||
``__u32 *elbatms``
|
||||
Expected logical block application tag mask
|
||||
|
||||
``__u32 *elbats``
|
||||
Expected logical block application tag
|
||||
|
||||
``__u16 nr``
|
||||
Number of descriptors to construct
|
||||
|
||||
|
||||
.. c:function:: int nvme_get_feature_length (int fid, __u32 cdw11, __u32 *len)
|
||||
|
||||
Retreive the command payload length for a specific feature identifier
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue