nvmf: NVMe-oF 1.1 adds cntlid to RDMA private data

Change-Id: I44ec5264fc93fa85706750cb23bbd0ed0587db81
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Ben Walker 2017-01-13 14:44:25 -07:00
parent 4133842d36
commit d77c030172
2 changed files with 13 additions and 1 deletions

View File

@ -425,7 +425,8 @@ struct spdk_nvmf_rdma_request_private_data {
uint16_t qid; /* queue id */
uint16_t hrqsize; /* host receive queue size */
uint16_t hsqsize; /* host send queue size */
uint8_t reserved[24];
uint16_t cntlid; /* controller id */
uint8_t reserved[22];
};
SPDK_STATIC_ASSERT(sizeof(struct spdk_nvmf_rdma_request_private_data) == 32, "Incorrect size");
@ -458,6 +459,7 @@ enum spdk_nvmf_rdma_transport_errors {
SPDK_NVMF_RDMA_ERROR_NO_RESOURCES = 0x6,
SPDK_NVMF_RDMA_ERROR_INVALID_IRD = 0x7,
SPDK_NVMF_RDMA_ERROR_INVALID_ORD = 0x8,
SPDK_NVMF_RDMA_ERROR_INVALID_CNTLID = 0x9,
};
#pragma pack(pop)

View File

@ -582,6 +582,8 @@ nvme_rdma_connect(struct nvme_rdma_qpair *rqpair)
struct ibv_device_attr attr;
int ret;
struct rdma_cm_event *event;
struct spdk_nvme_ctrlr *ctrlr;
struct nvme_rdma_ctrlr *rctrlr;
ret = ibv_query_device(rqpair->cm_id->verbs, &attr);
if (ret != 0) {
@ -591,9 +593,17 @@ nvme_rdma_connect(struct nvme_rdma_qpair *rqpair)
param.responder_resources = nvme_min(rqpair->num_entries, attr.max_qp_rd_atom);
ctrlr = rqpair->qpair.ctrlr;
if (!ctrlr) {
return -1;
}
rctrlr = nvme_rdma_ctrlr(ctrlr);
request_data.qid = rqpair->qpair.id;
request_data.hrqsize = rqpair->num_entries;
request_data.hsqsize = rqpair->num_entries - 1;
request_data.cntlid = rctrlr->cntlid;
param.private_data = &request_data;
param.private_data_len = sizeof(request_data);