Lines Matching defs:pdu

306 nvmf_tcp_validate_pdu(struct nvmf_tcp_qpair *qp, struct nvmf_tcp_rxpdu *pdu)
309 struct mbuf *m = pdu->m;
317 ch = pdu->hdr;
346 pdu->data_digest_mismatch = false;
353 pdu->data_digest_mismatch = true;
357 pdu->data_len = data_len;
362 nvmf_tcp_free_pdu(struct nvmf_tcp_rxpdu *pdu)
364 m_freem(pdu->m);
365 pdu->m = NULL;
366 pdu->hdr = NULL;
370 nvmf_tcp_handle_term_req(struct nvmf_tcp_rxpdu *pdu)
374 hdr = (const void *)pdu->hdr;
378 nvmf_tcp_free_pdu(pdu);
384 struct nvmf_tcp_rxpdu *pdu)
390 cmd = (const void *)pdu->hdr;
395 tc->rx_pdu = *pdu;
403 struct nvmf_tcp_rxpdu *pdu)
409 rsp = (const void *)pdu->hdr;
415 tc->rx_pdu = *pdu;
637 nvmf_tcp_handle_h2c_data(struct nvmf_tcp_qpair *qp, struct nvmf_tcp_rxpdu *pdu)
644 h2c = (const void *)pdu->hdr;
648 pdu->m, pdu->hdr->hlen);
649 nvmf_tcp_free_pdu(pdu);
661 offsetof(struct nvme_tcp_h2c_data_hdr, ttag), pdu->m,
662 pdu->hdr->hlen);
663 nvmf_tcp_free_pdu(pdu);
673 offsetof(struct nvme_tcp_h2c_data_hdr, ttag), pdu->m,
674 pdu->hdr->hlen);
675 nvmf_tcp_free_pdu(pdu);
681 if (pdu->data_digest_mismatch) {
685 nvmf_tcp_free_pdu(pdu);
690 if (data_len != pdu->data_len) {
694 offsetof(struct nvme_tcp_h2c_data_hdr, datal), pdu->m,
695 pdu->hdr->hlen);
696 nvmf_tcp_free_pdu(pdu);
705 NVME_TCP_TERM_REQ_FES_DATA_TRANSFER_OUT_OF_RANGE, 0, pdu->m,
706 pdu->hdr->hlen);
707 nvmf_tcp_free_pdu(pdu);
714 NVME_TCP_TERM_REQ_FES_PDU_SEQUENCE_ERROR, 0, pdu->m,
715 pdu->hdr->hlen);
716 nvmf_tcp_free_pdu(pdu);
721 ((pdu->hdr->flags & NVME_TCP_H2C_DATA_FLAGS_LAST_PDU) != 0)) {
724 NVME_TCP_TERM_REQ_FES_PDU_SEQUENCE_ERROR, 0, pdu->m,
725 pdu->hdr->hlen);
726 nvmf_tcp_free_pdu(pdu);
739 mbuf_copyto_io(pdu->m, pdu->hdr->pdo, data_len, &cb->io, data_offset);
742 nvmf_tcp_free_pdu(pdu);
747 nvmf_tcp_handle_c2h_data(struct nvmf_tcp_qpair *qp, struct nvmf_tcp_rxpdu *pdu)
753 c2h = (const void *)pdu->hdr;
765 offsetof(struct nvme_tcp_c2h_data_hdr, cccid), pdu->m,
766 pdu->hdr->hlen);
767 nvmf_tcp_free_pdu(pdu);
772 if (pdu->data_digest_mismatch) {
777 nvmf_tcp_free_pdu(pdu);
782 if (data_len != pdu->data_len) {
786 offsetof(struct nvme_tcp_c2h_data_hdr, datal), pdu->m,
787 pdu->hdr->hlen);
788 nvmf_tcp_free_pdu(pdu);
798 pdu->m, pdu->hdr->hlen);
799 nvmf_tcp_free_pdu(pdu);
806 NVME_TCP_TERM_REQ_FES_PDU_SEQUENCE_ERROR, 0, pdu->m,
807 pdu->hdr->hlen);
808 nvmf_tcp_free_pdu(pdu);
813 ((pdu->hdr->flags & NVME_TCP_C2H_DATA_FLAGS_LAST_PDU) != 0)) {
816 NVME_TCP_TERM_REQ_FES_PDU_SEQUENCE_ERROR, 0, pdu->m,
817 pdu->hdr->hlen);
818 nvmf_tcp_free_pdu(pdu);
830 mbuf_copyto_io(pdu->m, pdu->hdr->pdo, data_len, &cb->io, data_offset);
834 if ((pdu->hdr->flags & NVME_TCP_C2H_DATA_FLAGS_SUCCESS) != 0) {
847 nvmf_tcp_free_pdu(pdu);
942 nvmf_tcp_handle_r2t(struct nvmf_tcp_qpair *qp, struct nvmf_tcp_rxpdu *pdu)
948 r2t = (const void *)pdu->hdr;
956 offsetof(struct nvme_tcp_r2t_hdr, cccid), pdu->m,
957 pdu->hdr->hlen);
958 nvmf_tcp_free_pdu(pdu);
966 NVME_TCP_TERM_REQ_FES_PDU_SEQUENCE_ERROR, 0, pdu->m,
967 pdu->hdr->hlen);
968 nvmf_tcp_free_pdu(pdu);
981 pdu->m, pdu->hdr->hlen);
982 nvmf_tcp_free_pdu(pdu);
1012 nvmf_tcp_free_pdu(pdu);
1050 const struct nvme_tcp_common_pdu_hdr *ch, struct nvmf_tcp_rxpdu *pdu)
1053 pdu->m = pullup_pdu_hdr(pdu->m, ch->hlen);
1054 pdu->hdr = mtod(pdu->m, const void *);
1062 return (nvmf_tcp_handle_term_req(pdu));
1064 return (nvmf_tcp_save_command_capsule(qp, pdu));
1066 return (nvmf_tcp_save_response_capsule(qp, pdu));
1068 return (nvmf_tcp_handle_h2c_data(qp, pdu));
1070 return (nvmf_tcp_handle_c2h_data(qp, pdu));
1072 return (nvmf_tcp_handle_r2t(qp, pdu));
1081 struct nvmf_tcp_rxpdu pdu;
1180 pdu.m = m;
1182 pdu.hdr = &ch;
1183 error = nvmf_tcp_validate_pdu(qp, &pdu);
1185 m_freem(pdu.m);
1187 error = nvmf_tcp_dispatch_pdu(qp, &ch, &pdu);