]>
Commit | Line | Data |
---|---|---|
c213ca07 AA |
1 | /* |
2 | * iSCSI Initiator TCP Transport | |
3 | * Copyright (C) 2004 Dmitry Yusupov | |
4 | * Copyright (C) 2004 Alex Aizman | |
5bb0b55a MC |
5 | * Copyright (C) 2005 - 2006 Mike Christie |
6 | * Copyright (C) 2006 Red Hat, Inc. All rights reserved. | |
c213ca07 AA |
7 | * maintained by [email protected] |
8 | * | |
9 | * This program is free software; you can redistribute it and/or modify | |
10 | * it under the terms of the GNU General Public License as published | |
11 | * by the Free Software Foundation; either version 2 of the License, or | |
12 | * (at your option) any later version. | |
13 | * | |
14 | * This program is distributed in the hope that it will be useful, but | |
15 | * WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
17 | * General Public License for more details. | |
18 | * | |
19 | * See the file COPYING included with this distribution for more details. | |
20 | */ | |
21 | ||
38e1a8f5 MC |
22 | #ifndef ISCSI_SW_TCP_H |
23 | #define ISCSI_SW_TCP_H | |
c213ca07 | 24 | |
5bb0b55a | 25 | #include <scsi/libiscsi.h> |
38e1a8f5 | 26 | #include <scsi/libiscsi_tcp.h> |
c213ca07 | 27 | |
5bb0b55a | 28 | struct socket; |
da32dd68 | 29 | struct iscsi_tcp_conn; |
da32dd68 OK |
30 | |
31 | /* Socket connection send helper */ | |
38e1a8f5 | 32 | struct iscsi_sw_tcp_send { |
da32dd68 | 33 | struct iscsi_hdr *hdr; |
a8ac6311 OK |
34 | struct iscsi_segment segment; |
35 | struct iscsi_segment data_segment; | |
c213ca07 AA |
36 | }; |
37 | ||
38e1a8f5 | 38 | struct iscsi_sw_tcp_conn { |
5bb0b55a | 39 | struct socket *sock; |
c213ca07 | 40 | |
38e1a8f5 | 41 | struct iscsi_sw_tcp_send out; |
c213ca07 AA |
42 | /* old values for socket callbacks */ |
43 | void (*old_data_ready)(struct sock *, int); | |
44 | void (*old_state_change)(struct sock *); | |
45 | void (*old_write_space)(struct sock *); | |
46 | ||
dd8c0d95 | 47 | /* data and header digests */ |
c9802cd9 JB |
48 | struct hash_desc tx_hash; /* CRC32C (Tx) */ |
49 | struct hash_desc rx_hash; /* CRC32C (Rx) */ | |
c213ca07 | 50 | |
5bb0b55a | 51 | /* MIB custom statistics */ |
c213ca07 AA |
52 | uint32_t sendpage_failures_cnt; |
53 | uint32_t discontiguous_hdr_cnt; | |
56851698 | 54 | |
a8ac6311 | 55 | ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int); |
c213ca07 AA |
56 | }; |
57 | ||
a79af8a6 MC |
58 | struct iscsi_sw_tcp_host { |
59 | struct iscsi_session *session; | |
60 | }; | |
61 | ||
38e1a8f5 MC |
62 | struct iscsi_sw_tcp_hdrbuf { |
63 | struct iscsi_hdr hdrbuf; | |
64 | char hdrextbuf[ISCSI_MAX_AHS_SIZE + | |
004d6530 | 65 | ISCSI_DIGEST_SIZE]; |
c213ca07 AA |
66 | }; |
67 | ||
38e1a8f5 | 68 | #endif /* ISCSI_SW_TCP_H */ |