nvmf: Add NVMe fused operations to spdk_nvmf_ctrlr_data
Fused compare_and_write operation is always advertised by the nvmf transport. Add the fuses structure to spdk_nvmf_ctrlr_data to make advertising fused operation configurable. Signed-off-by: Alexis Lescouet <alexis.lescouet@nutanix.com> Change-Id: I73ee03dc8948f1d250cc0a8f0b8a3bde042a45e7 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12917 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: John Levon <levon@movementarian.org> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
ddf8904c51
commit
cbfd581c13
@ -1891,6 +1891,11 @@ struct spdk_nvme_cdata_oacs {
|
||||
uint16_t oacs_rsvd : 6;
|
||||
};
|
||||
|
||||
struct spdk_nvme_cdata_fuses {
|
||||
uint16_t compare_and_write : 1;
|
||||
uint16_t reserved : 15;
|
||||
};
|
||||
|
||||
struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
||||
/* bytes 0-255: controller capabilities and features */
|
||||
|
||||
@ -2181,10 +2186,7 @@ struct __attribute__((packed)) spdk_nvme_ctrlr_data {
|
||||
struct spdk_nvme_cdata_oncs oncs;
|
||||
|
||||
/** fused operation support */
|
||||
struct {
|
||||
uint16_t compare_and_write : 1;
|
||||
uint16_t reserved : 15;
|
||||
} fuses;
|
||||
struct spdk_nvme_cdata_fuses fuses;
|
||||
|
||||
/** format nvm attributes */
|
||||
struct {
|
||||
|
@ -184,6 +184,7 @@ struct spdk_nvmf_ctrlr_data {
|
||||
uint8_t ieee[3];
|
||||
struct spdk_nvme_cdata_oacs oacs;
|
||||
struct spdk_nvme_cdata_oncs oncs;
|
||||
struct spdk_nvme_cdata_fuses fuses;
|
||||
struct spdk_nvme_cdata_sgls sgls;
|
||||
struct spdk_nvme_cdata_nvmf_specific nvmf_specific;
|
||||
};
|
||||
|
@ -291,6 +291,7 @@ nvmf_ctrlr_cdata_init(struct spdk_nvmf_transport *transport, struct spdk_nvmf_su
|
||||
cdata->ieee[1] = 0xd2;
|
||||
cdata->ieee[2] = 0x5c;
|
||||
cdata->oncs.reservations = 1;
|
||||
cdata->fuses.compare_and_write = 1;
|
||||
cdata->sgls.supported = 1;
|
||||
cdata->sgls.keyed_sgl = 1;
|
||||
cdata->sgls.sgl_offset = 1;
|
||||
@ -2635,7 +2636,7 @@ spdk_nvmf_ctrlr_identify_ctrlr(struct spdk_nvmf_ctrlr *ctrlr, struct spdk_nvme_c
|
||||
cdata->elpe = 127;
|
||||
cdata->maxcmd = transport->opts.max_queue_depth;
|
||||
cdata->sgls = ctrlr->cdata.sgls;
|
||||
cdata->fuses.compare_and_write = 1;
|
||||
cdata->fuses = ctrlr->cdata.fuses;
|
||||
cdata->acwu = 0; /* ACWU is 0-based. */
|
||||
if (subsystem->flags.ana_reporting) {
|
||||
cdata->mnan = subsystem->max_nsid;
|
||||
|
Loading…
Reference in New Issue
Block a user