summaryrefslogtreecommitdiff
path: root/include/linux/nvme.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nvme.h')
-rw-r--r--include/linux/nvme.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index 655d194f8e72..041f30931a90 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -513,9 +513,16 @@ struct nvme_id_ns_nvm {
__u8 pic;
__u8 rsvd9[3];
__le32 elbaf[64];
- __u8 rsvd268[3828];
+ __le32 npdgl;
+ __le32 nprg;
+ __le32 npra;
+ __le32 nors;
+ __le32 npdal;
+ __u8 rsvd288[3808];
};
+static_assert(sizeof(struct nvme_id_ns_nvm) == 4096);
+
enum {
NVME_ID_NS_NVM_STS_MASK = 0x7f,
NVME_ID_NS_NVM_GUARD_SHIFT = 7,
@@ -590,7 +597,11 @@ enum {
enum {
NVME_NS_FEAT_THIN = 1 << 0,
NVME_NS_FEAT_ATOMICS = 1 << 1,
- NVME_NS_FEAT_IO_OPT = 1 << 4,
+ NVME_NS_FEAT_OPTPERF_SHIFT = 4,
+ /* In NVMe version 2.0 and below, OPTPERF is only bit 4 of NSFEAT */
+ NVME_NS_FEAT_OPTPERF_MASK = 0x1,
+ /* Since version 2.1, OPTPERF is bits 4 and 5 of NSFEAT */
+ NVME_NS_FEAT_OPTPERF_MASK_2_1 = 0x3,
NVME_NS_ATTR_RO = 1 << 0,
NVME_NS_FLBAS_LBA_MASK = 0xf,
NVME_NS_FLBAS_LBA_UMASK = 0x60,
@@ -1837,6 +1848,11 @@ enum {
NVME_AUTH_HASH_INVALID = 0xff,
};
+/* Maximum digest size for any NVME_AUTH_HASH_* value */
+enum {
+ NVME_AUTH_MAX_DIGEST_SIZE = 64,
+};
+
/* Defined Diffie-Hellman group identifiers for DH-HMAC-CHAP authentication */
enum {
NVME_AUTH_DHGROUP_NULL = 0x00,
@@ -2332,4 +2348,8 @@ enum nvme_pr_change_ptpl {
#define NVME_PR_IGNORE_KEY (1 << 3)
+/* Section 8.3.4.5.2 of the NVMe 2.1 */
+#define NVME_AUTH_DHCHAP_MAX_HASH_IDS 30
+#define NVME_AUTH_DHCHAP_MAX_DH_IDS 30
+
#endif /* _LINUX_NVME_H */