Lines Matching defs:pdu
273 iscsi_conn_free_pdu(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pdu)
278 cb_fn = pdu->cb_fn;
279 cb_arg = pdu->cb_arg;
282 pdu->cb_fn = NULL;
284 if (pdu->task) {
285 iscsi_task_put(pdu->task);
287 iscsi_put_pdu(pdu);
295 struct spdk_iscsi_pdu *pdu, *tmp_pdu;
298 TAILQ_FOREACH_SAFE(pdu, &conn->snack_pdu_list, tailq, tmp_pdu) {
299 TAILQ_REMOVE(&conn->snack_pdu_list, pdu, tailq);
300 iscsi_conn_free_pdu(conn, pdu);
316 TAILQ_FOREACH_SAFE(pdu, &conn->write_pdu_list, tailq, tmp_pdu) {
317 TAILQ_REMOVE(&conn->write_pdu_list, pdu, tailq);
318 iscsi_conn_free_pdu(conn, pdu);
439 struct spdk_iscsi_pdu *pdu, *tmp_pdu;
445 TAILQ_FOREACH_SAFE(pdu, &conn->snack_pdu_list, tailq, tmp_pdu) {
446 if (lun == pdu->task->scsi.lun) {
447 TAILQ_REMOVE(&conn->snack_pdu_list, pdu, tailq);
448 iscsi_conn_free_pdu(conn, pdu);
461 TAILQ_FOREACH(pdu, &conn->write_pdu_list, tailq) {
462 if (pdu->task && lun == pdu->task->scsi.lun) {
665 struct spdk_iscsi_pdu *pdu;
680 pdu = conn->pdu_in_progress;
681 if (pdu) {
683 task = pdu->task;
685 opcode = pdu->bhs.opcode;
698 iscsi_put_pdu(pdu);
990 struct spdk_iscsi_pdu *pdu)
999 (pdu == NULL || (spdk_sn32_lt(pdu_tmp->cmd_sn, pdu->cmd_sn)))) {
1194 struct spdk_iscsi_pdu *pdu = task->pdu;
1207 spdk_trace_record(TRACE_ISCSI_PDU_COMPLETED, conn->trace_id, 0, (uintptr_t)pdu);
1370 iscsi_is_free_pdu_deferred(struct spdk_iscsi_pdu *pdu)
1372 if (pdu == NULL) {
1376 if (pdu->bhs.opcode == ISCSI_OP_R2T ||
1377 pdu->bhs.opcode == ISCSI_OP_SCSI_DATAIN) {
1385 iscsi_dif_verify(struct spdk_iscsi_pdu *pdu, struct spdk_dif_ctx *dif_ctx)
1392 iov.iov_base = pdu->data;
1393 iov.iov_len = pdu->data_buf_len;
1394 num_blocks = pdu->data_buf_len / dif_ctx->block_size;
1408 struct spdk_iscsi_pdu *pdu = cb_arg;
1409 struct spdk_iscsi_conn *conn = pdu->conn;
1418 TAILQ_REMOVE(&conn->write_pdu_list, pdu, tailq);
1426 iscsi_is_free_pdu_deferred(pdu)) {
1428 from_be32(&pdu->bhs.stat_sn));
1429 TAILQ_INSERT_TAIL(&conn->snack_pdu_list, pdu,
1432 iscsi_conn_free_pdu(conn, pdu);
1442 iscsi_conn_write_pdu(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pdu,
1449 if (spdk_unlikely(pdu->dif_insert_or_strip)) {
1450 rc = iscsi_dif_verify(pdu, &pdu->dif_ctx);
1452 iscsi_conn_free_pdu(conn, pdu);
1458 if (pdu->bhs.opcode != ISCSI_OP_LOGIN_RSP) {
1461 crc32c = iscsi_pdu_calc_header_digest(pdu);
1462 MAKE_DIGEST_WORD(pdu->header_digest, crc32c);
1466 if (conn->data_digest && DGET24(pdu->bhs.data_segment_len) != 0) {
1467 crc32c = iscsi_pdu_calc_data_digest(pdu);
1468 MAKE_DIGEST_WORD(pdu->data_digest, crc32c);
1472 pdu->cb_fn = cb_fn;
1473 pdu->cb_arg = cb_arg;
1474 TAILQ_INSERT_TAIL(&conn->write_pdu_list, pdu, tailq);
1479 pdu->sock_req.iovcnt = iscsi_build_iovs(conn, pdu->iov, SPDK_COUNTOF(pdu->iov), pdu,
1480 &pdu->mapped_length);
1481 pdu->sock_req.cb_fn = _iscsi_conn_pdu_write_done;
1482 pdu->sock_req.cb_arg = pdu;
1484 spdk_sock_writev_async(conn->sock, &pdu->sock_req);
1664 SPDK_TRACE_ARG_TYPE_PTR, "pdu");