Lines Matching full:pdu

106 	void			*pdu;  member
153 void *pdu; member
276 return req->pdu; in nvme_tcp_req_cmd_pdu()
281 /* use the pdu space in the back for the data pdu */ in nvme_tcp_req_data_pdu()
282 return req->pdu + sizeof(struct nvme_tcp_cmd_pdu) - in nvme_tcp_req_data_pdu()
479 void *pdu, size_t len) in nvme_tcp_hdgst() argument
483 sg_init_one(&sg, pdu, len); in nvme_tcp_hdgst()
484 ahash_request_set_crypt(hash, &sg, pdu + len, len); in nvme_tcp_hdgst()
489 void *pdu, size_t pdu_len) in nvme_tcp_verify_hdgst() argument
491 struct nvme_tcp_hdr *hdr = pdu; in nvme_tcp_verify_hdgst()
502 recv_digest = *(__le32 *)(pdu + hdr->hlen); in nvme_tcp_verify_hdgst()
503 nvme_tcp_hdgst(queue->rcv_hash, pdu, pdu_len); in nvme_tcp_verify_hdgst()
504 exp_digest = *(__le32 *)(pdu + hdr->hlen); in nvme_tcp_verify_hdgst()
515 static int nvme_tcp_check_ddgst(struct nvme_tcp_queue *queue, void *pdu) in nvme_tcp_check_ddgst() argument
517 struct nvme_tcp_hdr *hdr = pdu; in nvme_tcp_check_ddgst()
540 page_frag_free(req->pdu); in nvme_tcp_exit_request()
549 struct nvme_tcp_cmd_pdu *pdu; in nvme_tcp_init_request() local
554 req->pdu = page_frag_alloc(&queue->pf_cache, in nvme_tcp_init_request()
557 if (!req->pdu) in nvme_tcp_init_request()
560 pdu = req->pdu; in nvme_tcp_init_request()
563 nvme_req(rq)->cmd = &pdu->cmd; in nvme_tcp_init_request()
641 struct nvme_tcp_data_pdu *pdu) in nvme_tcp_handle_c2h_data() argument
645 rq = nvme_find_rq(nvme_tcp_tagset(queue), pdu->command_id); in nvme_tcp_handle_c2h_data()
649 pdu->command_id, nvme_tcp_queue_id(queue)); in nvme_tcp_handle_c2h_data()
660 queue->data_remaining = le32_to_cpu(pdu->data_length); in nvme_tcp_handle_c2h_data()
662 if (pdu->hdr.flags & NVME_TCP_F_DATA_SUCCESS && in nvme_tcp_handle_c2h_data()
663 unlikely(!(pdu->hdr.flags & NVME_TCP_F_DATA_LAST))) { in nvme_tcp_handle_c2h_data()
665 "queue %d tag %#x SUCCESS set but not last PDU\n", in nvme_tcp_handle_c2h_data()
675 struct nvme_tcp_rsp_pdu *pdu) in nvme_tcp_handle_comp() argument
677 struct nvme_completion *cqe = &pdu->cqe; in nvme_tcp_handle_comp()
731 struct nvme_tcp_r2t_pdu *pdu) in nvme_tcp_handle_r2t() argument
735 u32 r2t_length = le32_to_cpu(pdu->r2t_length); in nvme_tcp_handle_r2t()
736 u32 r2t_offset = le32_to_cpu(pdu->r2t_offset); in nvme_tcp_handle_r2t()
738 rq = nvme_find_rq(nvme_tcp_tagset(queue), pdu->command_id); in nvme_tcp_handle_r2t()
742 pdu->command_id, nvme_tcp_queue_id(queue)); in nvme_tcp_handle_r2t()
771 req->ttag = pdu->ttag; in nvme_tcp_handle_r2t()
780 struct nvme_tcp_term_pdu *pdu) in nvme_tcp_handle_c2h_term() argument
784 u32 plen = le32_to_cpu(pdu->hdr.plen); in nvme_tcp_handle_c2h_term()
787 [NVME_TCP_FES_INVALID_PDU_HDR] = "Invalid PDU Header Field", in nvme_tcp_handle_c2h_term()
788 [NVME_TCP_FES_PDU_SEQ_ERR] = "PDU Sequence Error", in nvme_tcp_handle_c2h_term()
798 "Received a malformed C2HTermReq PDU (plen = %u)\n", in nvme_tcp_handle_c2h_term()
803 fes = le16_to_cpu(pdu->fes); in nvme_tcp_handle_c2h_term()
817 char *pdu = queue->pdu; in nvme_tcp_recv_pdu() local
822 &pdu[queue->pdu_offset], rcv_len); in nvme_tcp_recv_pdu()
833 hdr = queue->pdu; in nvme_tcp_recv_pdu()
839 "pdu type %d has unexpected header length (%d)\n", in nvme_tcp_recv_pdu()
849 nvme_tcp_handle_c2h_term(queue, (void *)queue->pdu); in nvme_tcp_recv_pdu()
854 ret = nvme_tcp_verify_hdgst(queue, queue->pdu, hdr->hlen); in nvme_tcp_recv_pdu()
861 ret = nvme_tcp_check_ddgst(queue, queue->pdu); in nvme_tcp_recv_pdu()
868 return nvme_tcp_handle_c2h_data(queue, (void *)queue->pdu); in nvme_tcp_recv_pdu()
871 return nvme_tcp_handle_comp(queue, (void *)queue->pdu); in nvme_tcp_recv_pdu()
874 return nvme_tcp_handle_r2t(queue, (void *)queue->pdu); in nvme_tcp_recv_pdu()
881 "unsupported pdu type (%d)\n", hdr->type); in nvme_tcp_recv_pdu()
896 struct nvme_tcp_data_pdu *pdu = (void *)queue->pdu; in nvme_tcp_recv_data() local
898 nvme_cid_to_rq(nvme_tcp_tagset(queue), pdu->command_id); in nvme_tcp_recv_data()
952 if (pdu->hdr.flags & NVME_TCP_F_DATA_SUCCESS) { in nvme_tcp_recv_data()
967 struct nvme_tcp_data_pdu *pdu = (void *)queue->pdu; in nvme_tcp_recv_ddgst() local
985 pdu->command_id); in nvme_tcp_recv_ddgst()
996 if (pdu->hdr.flags & NVME_TCP_F_DATA_SUCCESS) { in nvme_tcp_recv_ddgst()
998 pdu->command_id); in nvme_tcp_recv_ddgst()
1162 /* fully successful last send in current PDU */ in nvme_tcp_try_send_data()
1184 struct nvme_tcp_cmd_pdu *pdu = nvme_tcp_req_cmd_pdu(req); in nvme_tcp_try_send_cmd_pdu() local
1189 int len = sizeof(*pdu) + hdgst - req->offset; in nvme_tcp_try_send_cmd_pdu()
1198 nvme_tcp_hdgst(queue->snd_hash, pdu, sizeof(*pdu)); in nvme_tcp_try_send_cmd_pdu()
1200 bvec_set_virt(&bvec, (void *)pdu + req->offset, len); in nvme_tcp_try_send_cmd_pdu()
1225 struct nvme_tcp_data_pdu *pdu = nvme_tcp_req_data_pdu(req); in nvme_tcp_try_send_data_pdu() local
1229 int len = sizeof(*pdu) - req->offset + hdgst; in nvme_tcp_try_send_data_pdu()
1233 nvme_tcp_hdgst(queue->snd_hash, pdu, sizeof(*pdu)); in nvme_tcp_try_send_data_pdu()
1238 bvec_set_virt(&bvec, (void *)pdu + req->offset, len); in nvme_tcp_try_send_data_pdu()
1427 page_frag_free(async->pdu); in nvme_tcp_free_async_req()
1436 async->pdu = page_frag_alloc(&queue->pf_cache, in nvme_tcp_alloc_async_req()
1439 if (!async->pdu) in nvme_tcp_alloc_async_req()
1466 kfree(queue->pdu); in nvme_tcp_free_queue()
1549 pr_err("queue %d: bad pdu length returned %d\n", in nvme_tcp_init_connection()
1879 queue->pdu = kmalloc(rcv_pdu_size, GFP_KERNEL); in nvme_tcp_alloc_queue()
1880 if (!queue->pdu) { in nvme_tcp_alloc_queue()
1914 kfree(queue->pdu); in nvme_tcp_alloc_queue()
2011 if (to_tcp_ctrl(ctrl)->async_req.pdu) { in nvme_tcp_free_admin_queue()
2014 to_tcp_ctrl(ctrl)->async_req.pdu = NULL; in nvme_tcp_free_admin_queue()
2539 struct nvme_tcp_cmd_pdu *pdu = ctrl->async_req.pdu; in nvme_tcp_submit_async_event() local
2540 struct nvme_command *cmd = &pdu->cmd; in nvme_tcp_submit_async_event()
2543 memset(pdu, 0, sizeof(*pdu)); in nvme_tcp_submit_async_event()
2544 pdu->hdr.type = nvme_tcp_cmd; in nvme_tcp_submit_async_event()
2546 pdu->hdr.flags |= NVME_TCP_F_HDGST; in nvme_tcp_submit_async_event()
2547 pdu->hdr.hlen = sizeof(*pdu); in nvme_tcp_submit_async_event()
2548 pdu->hdr.plen = cpu_to_le32(pdu->hdr.hlen + hdgst); in nvme_tcp_submit_async_event()
2576 struct nvme_tcp_cmd_pdu *pdu = nvme_tcp_req_cmd_pdu(req); in nvme_tcp_timeout() local
2577 struct nvme_command *cmd = &pdu->cmd; in nvme_tcp_timeout()
2582 rq->tag, nvme_cid(rq), pdu->hdr.type, cmd->common.opcode, in nvme_tcp_timeout()
2615 struct nvme_tcp_cmd_pdu *pdu = nvme_tcp_req_cmd_pdu(req); in nvme_tcp_map_data() local
2616 struct nvme_command *c = &pdu->cmd; in nvme_tcp_map_data()
2635 struct nvme_tcp_cmd_pdu *pdu = nvme_tcp_req_cmd_pdu(req); in nvme_tcp_setup_cmd_pdu() local
2661 pdu->hdr.type = nvme_tcp_cmd; in nvme_tcp_setup_cmd_pdu()
2662 pdu->hdr.flags = 0; in nvme_tcp_setup_cmd_pdu()
2664 pdu->hdr.flags |= NVME_TCP_F_HDGST; in nvme_tcp_setup_cmd_pdu()
2666 pdu->hdr.flags |= NVME_TCP_F_DDGST; in nvme_tcp_setup_cmd_pdu()
2669 pdu->hdr.hlen = sizeof(*pdu); in nvme_tcp_setup_cmd_pdu()
2670 pdu->hdr.pdo = req->pdu_len ? pdu->hdr.hlen + hdgst : 0; in nvme_tcp_setup_cmd_pdu()
2671 pdu->hdr.plen = in nvme_tcp_setup_cmd_pdu()
2672 cpu_to_le32(pdu->hdr.hlen + hdgst + req->pdu_len + ddgst); in nvme_tcp_setup_cmd_pdu()