Commit d77c0301 authored by Ben Walker's avatar Ben Walker
Browse files

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



Change-Id: I44ec5264fc93fa85706750cb23bbd0ed0587db81
Signed-off-by: default avatarBen Walker <benjamin.walker@intel.com>
parent 4133842d
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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)
+10 −0
Original line number Diff line number Diff line
@@ -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);