nvme_spec: add VWC flush broadcast bits (TP 4035)
Also report that the NVMe-oF target does not support Flush with the broadcast NSID. Change-Id: Iad761a6f81eb099940463a67074a6dccb8871b70 Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-on: https://review.gerrithub.io/416445 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
800a142332
commit
d4ef57c072
@ -919,6 +919,20 @@ enum spdk_nvme_sgls_supported {
|
|||||||
SPDK_NVME_SGLS_SUPPORTED_DWORD_ALIGNED = 2,
|
SPDK_NVME_SGLS_SUPPORTED_DWORD_ALIGNED = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/** Identify Controller data vwc.flush_broadcast values */
|
||||||
|
enum spdk_nvme_flush_broadcast {
|
||||||
|
/** Support for NSID=FFFFFFFFh with Flush is not indicated. */
|
||||||
|
SPDK_NVME_FLUSH_BROADCAST_NOT_INDICATED = 0,
|
||||||
|
|
||||||
|
/* 01b: Reserved */
|
||||||
|
|
||||||
|
/** Flush does not support NSID set to FFFFFFFFh. */
|
||||||
|
SPDK_NVME_FLUSH_BROADCAST_NOT_SUPPORTED = 2,
|
||||||
|
|
||||||
|
/** Flush supports NSID set to FFFFFFFFh. */
|
||||||
|
SPDK_NVME_FLUSH_BROADCAST_SUPPORTED = 3
|
||||||
|
};
|
||||||
|
|
||||||
struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
||||||
/* bytes 0-255: controller capabilities and features */
|
/* bytes 0-255: controller capabilities and features */
|
||||||
|
|
||||||
@ -1223,7 +1237,8 @@ struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
|||||||
/** volatile write cache */
|
/** volatile write cache */
|
||||||
struct {
|
struct {
|
||||||
uint8_t present : 1;
|
uint8_t present : 1;
|
||||||
uint8_t reserved : 7;
|
uint8_t flush_broadcast : 2;
|
||||||
|
uint8_t reserved : 5;
|
||||||
} vwc;
|
} vwc;
|
||||||
|
|
||||||
/** atomic write unit normal */
|
/** atomic write unit normal */
|
||||||
|
@ -1211,6 +1211,7 @@ spdk_nvmf_ctrlr_identify_ctrlr(struct spdk_nvmf_ctrlr *ctrlr, struct spdk_nvme_c
|
|||||||
cdata->cqes.max = 4;
|
cdata->cqes.max = 4;
|
||||||
cdata->nn = subsystem->max_nsid;
|
cdata->nn = subsystem->max_nsid;
|
||||||
cdata->vwc.present = 1;
|
cdata->vwc.present = 1;
|
||||||
|
cdata->vwc.flush_broadcast = SPDK_NVME_FLUSH_BROADCAST_NOT_SUPPORTED;
|
||||||
|
|
||||||
cdata->nvmf_specific.ioccsz = sizeof(struct spdk_nvme_cmd) / 16;
|
cdata->nvmf_specific.ioccsz = sizeof(struct spdk_nvme_cmd) / 16;
|
||||||
cdata->nvmf_specific.iorcsz = sizeof(struct spdk_nvme_cpl) / 16;
|
cdata->nvmf_specific.iorcsz = sizeof(struct spdk_nvme_cpl) / 16;
|
||||||
|
Loading…
Reference in New Issue
Block a user