Loading include/spdk/nvmf_spec.h +3 −1 Original line number Diff line number Diff line Loading @@ -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"); Loading Loading @@ -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) Loading lib/nvme/nvme_rdma.c +10 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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); Loading Loading
include/spdk/nvmf_spec.h +3 −1 Original line number Diff line number Diff line Loading @@ -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"); Loading Loading @@ -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) Loading
lib/nvme/nvme_rdma.c +10 −0 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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); Loading