Lines Matching refs:request
257 icl_pdu_ahs_length(const struct icl_pdu *request) in icl_pdu_ahs_length() argument
260 return (request->ip_bhs->bhs_total_ahs_len * 4); in icl_pdu_ahs_length()
264 icl_pdu_data_segment_length(const struct icl_pdu *request) in icl_pdu_data_segment_length() argument
268 len += request->ip_bhs->bhs_data_segment_len[0]; in icl_pdu_data_segment_length()
270 len += request->ip_bhs->bhs_data_segment_len[1]; in icl_pdu_data_segment_length()
272 len += request->ip_bhs->bhs_data_segment_len[2]; in icl_pdu_data_segment_length()
279 const struct icl_pdu *request) in icl_soft_conn_pdu_data_segment_length() argument
282 return (icl_pdu_data_segment_length(request)); in icl_soft_conn_pdu_data_segment_length()
322 icl_pdu_receive_bhs(struct icl_pdu *request, size_t *availablep) in icl_pdu_receive_bhs() argument
325 if (icl_conn_receive_buf(request->ip_conn, in icl_pdu_receive_bhs()
326 request->ip_bhs, sizeof(struct iscsi_bhs))) { in icl_pdu_receive_bhs()
336 icl_pdu_receive_ahs(struct icl_pdu *request, size_t *availablep) in icl_pdu_receive_ahs() argument
339 request->ip_ahs_len = icl_pdu_ahs_length(request); in icl_pdu_receive_ahs()
340 if (request->ip_ahs_len == 0) in icl_pdu_receive_ahs()
343 request->ip_ahs_mbuf = icl_conn_receive(request->ip_conn, in icl_pdu_receive_ahs()
344 request->ip_ahs_len); in icl_pdu_receive_ahs()
345 if (request->ip_ahs_mbuf == NULL) { in icl_pdu_receive_ahs()
350 *availablep -= request->ip_ahs_len; in icl_pdu_receive_ahs()
370 icl_pdu_check_header_digest(struct icl_pdu *request, size_t *availablep) in icl_pdu_check_header_digest() argument
374 if (request->ip_conn->ic_header_crc32c == false) in icl_pdu_check_header_digest()
378 if (icl_conn_receive_buf(request->ip_conn, in icl_pdu_check_header_digest()
386 request->ip_bhs_mbuf->m_next = request->ip_ahs_mbuf; in icl_pdu_check_header_digest()
387 valid_digest = icl_mbuf_to_crc32c(request->ip_bhs_mbuf); in icl_pdu_check_header_digest()
388 request->ip_bhs_mbuf->m_next = NULL; in icl_pdu_check_header_digest()
403 icl_pdu_data_segment_receive_len(const struct icl_pdu *request) in icl_pdu_data_segment_receive_len() argument
407 len = icl_pdu_data_segment_length(request); in icl_pdu_data_segment_receive_len()
415 KASSERT(len > request->ip_data_len, ("len <= request->ip_data_len")); in icl_pdu_data_segment_receive_len()
416 len -= request->ip_data_len; in icl_pdu_data_segment_receive_len()
451 icl_pdu_receive_data_segment(struct icl_pdu *request, in icl_pdu_receive_data_segment() argument
458 ic = request->ip_conn; in icl_pdu_receive_data_segment()
463 len = icl_pdu_data_segment_length(request); in icl_pdu_receive_data_segment()
473 KASSERT(len > request->ip_data_len, ("len <= request->ip_data_len")); in icl_pdu_receive_data_segment()
474 len -= request->ip_data_len; in icl_pdu_receive_data_segment()
496 m = icl_conn_receive(request->ip_conn, len + padding); in icl_pdu_receive_data_segment()
502 if (request->ip_data_mbuf == NULL) in icl_pdu_receive_data_segment()
503 request->ip_data_mbuf = m; in icl_pdu_receive_data_segment()
505 m_cat(request->ip_data_mbuf, m); in icl_pdu_receive_data_segment()
507 request->ip_data_len += len; in icl_pdu_receive_data_segment()
514 icl_pdu_data_segment_receive_len(request); in icl_pdu_receive_data_segment()
520 icl_pdu_check_data_digest(struct icl_pdu *request, size_t *availablep) in icl_pdu_check_data_digest() argument
524 if (request->ip_conn->ic_data_crc32c == false) in icl_pdu_check_data_digest()
527 if (request->ip_data_len == 0) in icl_pdu_check_data_digest()
531 if (icl_conn_receive_buf(request->ip_conn, in icl_pdu_check_data_digest()
543 valid_digest = icl_mbuf_to_crc32c(request->ip_data_mbuf); in icl_pdu_check_data_digest()
560 struct icl_pdu *request; in icl_conn_receive_pdu() local
571 request = icl_soft_conn_new_pdu(ic, M_NOWAIT); in icl_conn_receive_pdu()
572 if (request == NULL) { in icl_conn_receive_pdu()
578 ic->ic_receive_pdu = request; in icl_conn_receive_pdu()
582 request = ic->ic_receive_pdu; in icl_conn_receive_pdu()
596 error = icl_pdu_receive_bhs(request, availablep); in icl_conn_receive_pdu()
608 len = icl_pdu_data_segment_length(request); in icl_conn_receive_pdu()
620 ic->ic_receive_len = icl_pdu_ahs_length(request); in icl_conn_receive_pdu()
625 error = icl_pdu_receive_ahs(request, availablep); in icl_conn_receive_pdu()
640 error = icl_pdu_check_header_digest(request, availablep); in icl_conn_receive_pdu()
649 icl_pdu_data_segment_receive_len(request); in icl_conn_receive_pdu()
654 error = icl_pdu_receive_data_segment(request, availablep, in icl_conn_receive_pdu()
666 if (request->ip_data_len == 0 || ic->ic_data_crc32c == false) in icl_conn_receive_pdu()
674 error = icl_pdu_check_data_digest(request, availablep); in icl_conn_receive_pdu()
688 return (request); in icl_conn_receive_pdu()
815 icl_pdu_finalize(struct icl_pdu *request) in icl_pdu_finalize() argument
822 ic = request->ip_conn; in icl_pdu_finalize()
824 icl_pdu_set_data_segment_length(request, request->ip_data_len); in icl_pdu_finalize()
826 pdu_len = icl_pdu_size(request); in icl_pdu_finalize()
829 digest = icl_mbuf_to_crc32c(request->ip_bhs_mbuf); in icl_pdu_finalize()
830 ok = m_append(request->ip_bhs_mbuf, sizeof(digest), in icl_pdu_finalize()
838 if (request->ip_data_len != 0) { in icl_pdu_finalize()
839 padding = icl_pdu_padding(request); in icl_pdu_finalize()
841 ok = m_append(request->ip_data_mbuf, padding, in icl_pdu_finalize()
850 digest = icl_mbuf_to_crc32c(request->ip_data_mbuf); in icl_pdu_finalize()
852 ok = m_append(request->ip_data_mbuf, sizeof(digest), in icl_pdu_finalize()
860 m_cat(request->ip_bhs_mbuf, request->ip_data_mbuf); in icl_pdu_finalize()
861 request->ip_data_mbuf = NULL; in icl_pdu_finalize()
864 request->ip_bhs_mbuf->m_pkthdr.len = pdu_len; in icl_pdu_finalize()
872 struct icl_pdu *request, *request2; in icl_conn_send_pdus() local
898 request = STAILQ_FIRST(queue); in icl_conn_send_pdus()
899 size = icl_pdu_size(request); in icl_conn_send_pdus()
923 error = icl_pdu_finalize(request); in icl_conn_send_pdus()
927 icl_soft_conn_pdu_free(ic, request); in icl_conn_send_pdus()
945 icl_soft_conn_pdu_free(ic, request); in icl_conn_send_pdus()
950 m_cat(request->ip_bhs_mbuf, request2->ip_bhs_mbuf); in icl_conn_send_pdus()
952 request->ip_bhs_mbuf->m_pkthdr.len += size2; in icl_conn_send_pdus()
954 STAILQ_REMOVE_AFTER(queue, request, ip_next); in icl_conn_send_pdus()
966 error = sosend(so, NULL, NULL, request->ip_bhs_mbuf, in icl_conn_send_pdus()
968 request->ip_bhs_mbuf = NULL; /* Sosend consumes the mbuf. */ in icl_conn_send_pdus()
972 icl_soft_conn_pdu_free(ic, request); in icl_conn_send_pdus()
976 icl_soft_conn_pdu_free(ic, request); in icl_conn_send_pdus()
1070 icl_soft_conn_pdu_append_data(struct icl_conn *ic, struct icl_pdu *request, in icl_soft_conn_pdu_append_data() argument
1092 if (request->ip_data_mbuf == NULL) { in icl_soft_conn_pdu_append_data()
1093 request->ip_data_mbuf = newmb; in icl_soft_conn_pdu_append_data()
1094 request->ip_data_len = len; in icl_soft_conn_pdu_append_data()
1096 m_cat(request->ip_data_mbuf, newmb); in icl_soft_conn_pdu_append_data()
1097 request->ip_data_len += len; in icl_soft_conn_pdu_append_data()