Lines Matching defs:fc_conn
310 nvmf_fc_free_conn_reqpool(struct spdk_nvmf_fc_conn *fc_conn)
312 free(fc_conn->pool_memory);
313 fc_conn->pool_memory = NULL;
317 nvmf_fc_create_conn_reqpool(struct spdk_nvmf_fc_conn *fc_conn)
331 qd = fc_conn->max_queue_depth * 2;
333 STAILQ_INIT(&fc_conn->pool_queue);
334 fc_conn->pool_memory = calloc((fc_conn->max_queue_depth * 2),
336 if (!fc_conn->pool_memory) {
340 fc_conn->pool_size = qd;
341 fc_conn->pool_free_elems = qd;
345 req = (struct spdk_nvmf_fc_pooled_request *)((char *)fc_conn->pool_memory +
348 STAILQ_INSERT_TAIL(&fc_conn->pool_queue, req, pool_link);
352 nvmf_fc_free_conn_reqpool(fc_conn);
357 nvmf_fc_conn_alloc_fc_request(struct spdk_nvmf_fc_conn *fc_conn)
361 struct spdk_nvmf_fc_hwqp *hwqp = fc_conn->hwqp;
363 pooled_req = STAILQ_FIRST(&fc_conn->pool_queue);
368 STAILQ_REMOVE_HEAD(&fc_conn->pool_queue, pool_link);
369 fc_conn->pool_free_elems -= 1;
376 TAILQ_INSERT_TAIL(&fc_conn->in_use_reqs, fc_req, conn_link);
382 nvmf_fc_conn_free_fc_request(struct spdk_nvmf_fc_conn *fc_conn, struct spdk_nvmf_fc_request *fc_req)
392 TAILQ_REMOVE(&fc_conn->hwqp->in_use_reqs, fc_req, link);
393 TAILQ_REMOVE(&fc_conn->in_use_reqs, fc_req, conn_link);
395 STAILQ_INSERT_HEAD(&fc_conn->pool_queue, (struct spdk_nvmf_fc_pooled_request *)fc_req, pool_link);
396 fc_conn->pool_free_elems += 1;
1124 struct spdk_nvmf_fc_conn *fc_conn;
1131 fc_conn = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_fc_conn, qpair);
1133 return fc_conn->fc_assoc;
1333 TAILQ_REMOVE(&fc_req->fc_conn->fused_waiting_queue, fc_req, fused_link);
1448 struct spdk_nvmf_fc_conn *fc_conn = NULL;
1480 (void *)&rqst_conn_id, (void **)&fc_conn) < 0) {
1487 if (s_id != fc_conn->s_id) {
1493 if (d_id != fc_conn->d_id) {
1500 if (fc_conn->fc_assoc->assoc_state != SPDK_NVMF_FC_OBJECT_CREATED) {
1502 fc_conn->fc_assoc->assoc_id, fc_conn->fc_assoc->assoc_state);
1506 if (fc_conn->conn_state != SPDK_NVMF_FC_OBJECT_CREATED) {
1508 rqst_conn_id, fc_conn->conn_state);
1512 if (!spdk_nvmf_qpair_is_active(&fc_conn->qpair)) {
1514 rqst_conn_id, fc_conn->qpair.state);
1526 fc_req = nvmf_fc_conn_alloc_fc_request(fc_conn);
1532 fc_req->req.qpair = &fc_conn->qpair;
1538 fc_req->rpi = fc_conn->rpi;
1542 fc_req->fc_conn = fc_conn;
1588 nvmf_fc_conn_free_fc_request(fc_req->fc_conn, fc_req);
1804 struct spdk_nvmf_fc_conn *fc_conn = nvmf_fc_get_conn(qpair);
1812 fc_conn->rsp_count++;
1814 if (nvmf_fc_send_ersp_required(fc_req, fc_conn->rsp_count,
1822 to_be32(&fc_req->ersp.response_seq_no, fc_conn->rsn);
1823 fc_conn->rsn++;
1845 struct spdk_nvmf_fc_conn *fc_conn = nvmf_fc_get_conn(qpair);
1859 if (!(rsp_cnt % fc_conn->esrp_ratio) ||
2135 struct spdk_nvmf_fc_conn *fc_conn;
2141 fc_conn = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_fc_conn, qpair);
2144 if (fc_conn->fc_assoc->tgtport->fc_port == hwqp->fc_port) {
2156 &fc_conn->conn_id,
2157 fc_conn->max_queue_depth)) {
2162 fc_conn->hwqp = hwqp;
2165 if (fc_conn->qpair.qid == 0) {
2166 fc_conn->fc_assoc->assoc_id = fc_conn->conn_id;
2169 api_data = &fc_conn->create_opd->u.add_conn;
2225 struct spdk_nvmf_fc_conn *fc_conn;
2228 fc_conn = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_fc_conn, qpair);
2230 SPDK_NOTICELOG("Close qpair %p, fc_conn %p conn_state %d conn_id 0x%lx\n",
2231 qpair, fc_conn, fc_conn->conn_state, fc_conn->conn_id);
2232 if (fc_conn->conn_id == NVMF_FC_INVALID_CONN_ID) {
2235 if (fc_conn->create_opd) {
2236 api_data = &fc_conn->create_opd->u.add_conn;
2239 api_data->args.fc_conn, api_data->aq_conn);
2241 } else if (fc_conn->conn_state == SPDK_NVMF_FC_OBJECT_CREATED) {
2242 rc = nvmf_fc_delete_connection(fc_conn, false, true,
2249 SPDK_ERRLOG("Delete fc_conn %p failed.\n", fc_conn);
2260 struct spdk_nvmf_fc_conn *fc_conn;
2262 fc_conn = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_fc_conn, qpair);
2263 fc_conn->qpair_fini_done = true;
2265 if (fc_conn->conn_state == SPDK_NVMF_FC_OBJECT_TO_BE_DELETED) {
2266 if (fc_conn->qpair_fini_done_cb) {
2267 SPDK_NOTICELOG("Invoke qpair_fini_done_cb, fc_conn %p conn_id 0x%lx qpair %p conn_state %d\n",
2268 fc_conn, fc_conn->conn_id, qpair, fc_conn->conn_state);
2270 fc_conn->qpair_fini_done_cb(fc_conn->hwqp, 0, fc_conn->qpair_fini_done_cb_args);
2302 struct spdk_nvmf_fc_conn *fc_conn;
2304 fc_conn = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_fc_conn, qpair);
2305 memcpy(trid, &fc_conn->trid, sizeof(struct spdk_nvme_transport_id));
2313 struct spdk_nvmf_fc_conn *fc_conn;
2315 fc_conn = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_fc_conn, qpair);
2316 memcpy(trid, &fc_conn->trid, sizeof(struct spdk_nvme_transport_id));
2324 struct spdk_nvmf_fc_conn *fc_conn;
2326 fc_conn = SPDK_CONTAINEROF(qpair, struct spdk_nvmf_fc_conn, qpair);
2327 memcpy(trid, &fc_conn->trid, sizeof(struct spdk_nvme_transport_id));