Lines Matching refs:tcp_conn

70 static int iscsi_tcp_hdr_recv_done(struct iscsi_tcp_conn *tcp_conn,
192 int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn, in iscsi_tcp_segment_done() argument
199 ISCSI_DBG_TCP(tcp_conn->iscsi_conn, "copied %u %u size %u %s\n", in iscsi_tcp_segment_done()
234 ISCSI_DBG_TCP(tcp_conn->iscsi_conn, "total copied %u total size %u\n", in iscsi_tcp_segment_done()
246 if (!(tcp_conn->iscsi_conn->session->tt->caps & CAP_PADDING_OFFLOAD)) { in iscsi_tcp_segment_done()
249 ISCSI_DBG_TCP(tcp_conn->iscsi_conn, in iscsi_tcp_segment_done()
291 iscsi_tcp_segment_recv(struct iscsi_tcp_conn *tcp_conn, in iscsi_tcp_segment_recv() argument
297 while (!iscsi_tcp_segment_done(tcp_conn, segment, 1, copy)) { in iscsi_tcp_segment_recv()
299 ISCSI_DBG_TCP(tcp_conn->iscsi_conn, in iscsi_tcp_segment_recv()
305 ISCSI_DBG_TCP(tcp_conn->iscsi_conn, "copying %d\n", copy); in iscsi_tcp_segment_recv()
324 iscsi_tcp_dgst_verify(struct iscsi_tcp_conn *tcp_conn, in iscsi_tcp_dgst_verify() argument
332 ISCSI_DBG_TCP(tcp_conn->iscsi_conn, "digest mismatch\n"); in iscsi_tcp_dgst_verify()
397 void iscsi_tcp_hdr_recv_prep(struct iscsi_tcp_conn *tcp_conn) in iscsi_tcp_hdr_recv_prep() argument
399 ISCSI_DBG_TCP(tcp_conn->iscsi_conn, in iscsi_tcp_hdr_recv_prep()
400 "(%s)\n", tcp_conn->iscsi_conn->hdrdgst_en ? in iscsi_tcp_hdr_recv_prep()
402 iscsi_segment_init_linear(&tcp_conn->in.segment, in iscsi_tcp_hdr_recv_prep()
403 tcp_conn->in.hdr_buf, sizeof(struct iscsi_hdr), in iscsi_tcp_hdr_recv_prep()
412 iscsi_tcp_data_recv_done(struct iscsi_tcp_conn *tcp_conn, in iscsi_tcp_data_recv_done() argument
415 struct iscsi_conn *conn = tcp_conn->iscsi_conn; in iscsi_tcp_data_recv_done()
418 if (!iscsi_tcp_dgst_verify(tcp_conn, segment)) in iscsi_tcp_data_recv_done()
421 rc = iscsi_complete_pdu(conn, tcp_conn->in.hdr, in iscsi_tcp_data_recv_done()
422 conn->data, tcp_conn->in.datalen); in iscsi_tcp_data_recv_done()
426 iscsi_tcp_hdr_recv_prep(tcp_conn); in iscsi_tcp_data_recv_done()
431 iscsi_tcp_data_recv_prep(struct iscsi_tcp_conn *tcp_conn) in iscsi_tcp_data_recv_prep() argument
433 struct iscsi_conn *conn = tcp_conn->iscsi_conn; in iscsi_tcp_data_recv_prep()
438 rx_hash = tcp_conn->rx_hash; in iscsi_tcp_data_recv_prep()
440 iscsi_segment_init_linear(&tcp_conn->in.segment, in iscsi_tcp_data_recv_prep()
441 conn->data, tcp_conn->in.datalen, in iscsi_tcp_data_recv_prep()
485 struct iscsi_tcp_conn *tcp_conn = conn->dd_data; in iscsi_tcp_data_in() local
487 struct iscsi_data_rsp *rhdr = (struct iscsi_data_rsp *)tcp_conn->in.hdr; in iscsi_tcp_data_in()
498 if (tcp_conn->in.datalen == 0) in iscsi_tcp_data_in()
510 if (tcp_task->data_offset + tcp_conn->in.datalen > total_in_length) { in iscsi_tcp_data_in()
513 tcp_conn->in.datalen, total_in_length); in iscsi_tcp_data_in()
530 struct iscsi_tcp_conn *tcp_conn = conn->dd_data; in iscsi_tcp_r2t_rsp() local
531 struct iscsi_r2t_rsp *rhdr = (struct iscsi_r2t_rsp *)tcp_conn->in.hdr; in iscsi_tcp_r2t_rsp()
538 if (tcp_conn->in.datalen) { in iscsi_tcp_r2t_rsp()
541 tcp_conn->in.datalen); in iscsi_tcp_r2t_rsp()
613 iscsi_tcp_process_data_in(struct iscsi_tcp_conn *tcp_conn, in iscsi_tcp_process_data_in() argument
616 struct iscsi_conn *conn = tcp_conn->iscsi_conn; in iscsi_tcp_process_data_in()
617 struct iscsi_hdr *hdr = tcp_conn->in.hdr; in iscsi_tcp_process_data_in()
620 if (!iscsi_tcp_dgst_verify(tcp_conn, segment)) in iscsi_tcp_process_data_in()
625 rc = iscsi_complete_pdu(conn, tcp_conn->in.hdr, NULL, 0); in iscsi_tcp_process_data_in()
630 iscsi_tcp_hdr_recv_prep(tcp_conn); in iscsi_tcp_process_data_in()
648 struct iscsi_tcp_conn *tcp_conn = conn->dd_data; in iscsi_tcp_hdr_dissect() local
652 tcp_conn->in.datalen = ntoh24(hdr->dlength); in iscsi_tcp_hdr_dissect()
653 if (tcp_conn->in.datalen > conn->max_recv_dlength) { in iscsi_tcp_hdr_dissect()
656 tcp_conn->in.datalen, conn->max_recv_dlength); in iscsi_tcp_hdr_dissect()
672 opcode, ahslen, tcp_conn->in.datalen); in iscsi_tcp_hdr_dissect()
687 if (tcp_conn->in.datalen) { in iscsi_tcp_hdr_dissect()
702 rx_hash = tcp_conn->rx_hash; in iscsi_tcp_hdr_dissect()
707 tcp_conn->in.datalen); in iscsi_tcp_hdr_dissect()
709 rc = iscsi_segment_seek_sg(&tcp_conn->in.segment, in iscsi_tcp_hdr_dissect()
713 tcp_conn->in.datalen, in iscsi_tcp_hdr_dissect()
723 if (tcp_conn->in.datalen) { in iscsi_tcp_hdr_dissect()
724 iscsi_tcp_data_recv_prep(tcp_conn); in iscsi_tcp_hdr_dissect()
754 if (ISCSI_DEF_MAX_RECV_SEG_LEN < tcp_conn->in.datalen) { in iscsi_tcp_hdr_dissect()
759 tcp_conn->in.datalen, in iscsi_tcp_hdr_dissect()
768 if (tcp_conn->in.datalen) { in iscsi_tcp_hdr_dissect()
769 iscsi_tcp_data_recv_prep(tcp_conn); in iscsi_tcp_hdr_dissect()
786 if (tcp_conn->in.datalen) in iscsi_tcp_hdr_dissect()
788 iscsi_tcp_hdr_recv_prep(tcp_conn); in iscsi_tcp_hdr_dissect()
802 iscsi_tcp_hdr_recv_done(struct iscsi_tcp_conn *tcp_conn, in iscsi_tcp_hdr_recv_done() argument
805 struct iscsi_conn *conn = tcp_conn->iscsi_conn; in iscsi_tcp_hdr_recv_done()
812 hdr = (struct iscsi_hdr *) tcp_conn->in.hdr_buf; in iscsi_tcp_hdr_recv_done()
820 if (sizeof(*hdr) + ahslen > sizeof(tcp_conn->in.hdr_buf)) in iscsi_tcp_hdr_recv_done()
844 iscsi_tcp_dgst_header(tcp_conn->rx_hash, hdr, in iscsi_tcp_hdr_recv_done()
848 if (!iscsi_tcp_dgst_verify(tcp_conn, segment)) in iscsi_tcp_hdr_recv_done()
852 tcp_conn->in.hdr = hdr; in iscsi_tcp_hdr_recv_done()
863 inline int iscsi_tcp_recv_segment_is_hdr(struct iscsi_tcp_conn *tcp_conn) in iscsi_tcp_recv_segment_is_hdr() argument
865 return tcp_conn->in.segment.done == iscsi_tcp_hdr_recv_done; in iscsi_tcp_recv_segment_is_hdr()
882 struct iscsi_tcp_conn *tcp_conn = conn->dd_data; in iscsi_tcp_recv_skb() local
883 struct iscsi_segment *segment = &tcp_conn->in.segment; in iscsi_tcp_recv_skb()
923 rc = iscsi_tcp_segment_recv(tcp_conn, segment, ptr, avail); in iscsi_tcp_recv_skb()
936 rc = segment->done(tcp_conn, segment); in iscsi_tcp_recv_skb()
1092 struct iscsi_tcp_conn *tcp_conn; in iscsi_tcp_conn_setup() local
1095 sizeof(*tcp_conn) + dd_data_size, conn_idx); in iscsi_tcp_conn_setup()
1105 tcp_conn = conn->dd_data; in iscsi_tcp_conn_setup()
1106 tcp_conn->iscsi_conn = conn; in iscsi_tcp_conn_setup()
1107 tcp_conn->dd_data = conn->dd_data + sizeof(*tcp_conn); in iscsi_tcp_conn_setup()