Commit 39b386a5 authored by Cunyin Chang's avatar Cunyin Chang Committed by Daniel Verkamp
Browse files

nvmf: Add interface for transport layer to check if one connection is idle.



Change-Id: I094d5adb85af8279c9823528f40190fa28801b7b
Signed-off-by: default avatarCunyin Chang <cunyin.chang@intel.com>
parent 50947d55
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -1510,6 +1510,17 @@ spdk_nvmf_rdma_poll(struct spdk_nvmf_conn *conn)
	return count;
}

static bool
spdk_nvmf_rdma_conn_is_idle(struct spdk_nvmf_conn *conn)
{
	struct spdk_nvmf_rdma_conn *rdma_conn = get_rdma_conn(conn);

	if (rdma_conn->cur_queue_depth == 0 && rdma_conn->cur_rdma_rw_depth == 0) {
		return true;
	}
	return false;
}

const struct spdk_nvmf_transport spdk_nvmf_transport_rdma = {
	.name = "rdma",
	.transport_init = spdk_nvmf_rdma_init,
@@ -1530,7 +1541,7 @@ const struct spdk_nvmf_transport spdk_nvmf_transport_rdma = {

	.conn_fini = spdk_nvmf_rdma_close_conn,
	.conn_poll = spdk_nvmf_rdma_poll,

	.conn_is_idle = spdk_nvmf_rdma_conn_is_idle,

};

+5 −0
Original line number Diff line number Diff line
@@ -115,6 +115,11 @@ struct spdk_nvmf_transport {
	 * Poll a connection for events.
	 */
	int (*conn_poll)(struct spdk_nvmf_conn *conn);

	/*
	 * True if the conn has no pending IO.
	 */
	bool (*conn_is_idle)(struct spdk_nvmf_conn *conn);
};

int spdk_nvmf_transport_init(void);