diff options
author | Karen Xie <kxie@chelsio.com> | 2008-12-09 17:15:32 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-12-30 11:45:33 -0500 |
commit | c3673464ebc004a3d82063cd41b9cf74d1b55db2 (patch) | |
tree | b061ecd04da7dd3ddddad8f39a4922f437493311 /drivers/scsi/cxgb3i/cxgb3i_pdu.h | |
parent | b632ade282895562924d18b8eedd11a825f4b08c (diff) |
[SCSI] cxgb3i: Add cxgb3i iSCSI driver.
This patch implements the cxgb3i iscsi connection acceleration for the
open-iscsi initiator.
The cxgb3i driver offers the iscsi PDU based offload:
- digest insertion and verification
- payload direct-placement into host memory buffer.
Signed-off-by: Karen Xie <kxie@chelsio.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/scsi/cxgb3i/cxgb3i_pdu.h')
-rw-r--r-- | drivers/scsi/cxgb3i/cxgb3i_pdu.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/drivers/scsi/cxgb3i/cxgb3i_pdu.h b/drivers/scsi/cxgb3i/cxgb3i_pdu.h new file mode 100644 index 000000000000..a3f685cc2362 --- /dev/null +++ b/drivers/scsi/cxgb3i/cxgb3i_pdu.h | |||
@@ -0,0 +1,59 @@ | |||
1 | /* | ||
2 | * cxgb3i_ulp2.h: Chelsio S3xx iSCSI driver. | ||
3 | * | ||
4 | * Copyright (c) 2008 Chelsio Communications, Inc. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation. | ||
9 | * | ||
10 | * Written by: Karen Xie (kxie@chelsio.com) | ||
11 | */ | ||
12 | |||
13 | #ifndef __CXGB3I_ULP2_PDU_H__ | ||
14 | #define __CXGB3I_ULP2_PDU_H__ | ||
15 | |||
16 | struct cpl_iscsi_hdr_norss { | ||
17 | union opcode_tid ot; | ||
18 | u16 pdu_len_ddp; | ||
19 | u16 len; | ||
20 | u32 seq; | ||
21 | u16 urg; | ||
22 | u8 rsvd; | ||
23 | u8 status; | ||
24 | }; | ||
25 | |||
26 | struct cpl_rx_data_ddp_norss { | ||
27 | union opcode_tid ot; | ||
28 | u16 urg; | ||
29 | u16 len; | ||
30 | u32 seq; | ||
31 | u32 nxt_seq; | ||
32 | u32 ulp_crc; | ||
33 | u32 ddp_status; | ||
34 | }; | ||
35 | |||
36 | #define RX_DDP_STATUS_IPP_SHIFT 27 /* invalid pagepod */ | ||
37 | #define RX_DDP_STATUS_TID_SHIFT 26 /* tid mismatch */ | ||
38 | #define RX_DDP_STATUS_COLOR_SHIFT 25 /* color mismatch */ | ||
39 | #define RX_DDP_STATUS_OFFSET_SHIFT 24 /* offset mismatch */ | ||
40 | #define RX_DDP_STATUS_ULIMIT_SHIFT 23 /* ulimit error */ | ||
41 | #define RX_DDP_STATUS_TAG_SHIFT 22 /* tag mismatch */ | ||
42 | #define RX_DDP_STATUS_DCRC_SHIFT 21 /* dcrc error */ | ||
43 | #define RX_DDP_STATUS_HCRC_SHIFT 20 /* hcrc error */ | ||
44 | #define RX_DDP_STATUS_PAD_SHIFT 19 /* pad error */ | ||
45 | #define RX_DDP_STATUS_PPP_SHIFT 18 /* pagepod parity error */ | ||
46 | #define RX_DDP_STATUS_LLIMIT_SHIFT 17 /* llimit error */ | ||
47 | #define RX_DDP_STATUS_DDP_SHIFT 16 /* ddp'able */ | ||
48 | #define RX_DDP_STATUS_PMM_SHIFT 15 /* pagepod mismatch */ | ||
49 | |||
50 | #define ULP2_FLAG_DATA_READY 0x1 | ||
51 | #define ULP2_FLAG_DATA_DDPED 0x2 | ||
52 | #define ULP2_FLAG_HCRC_ERROR 0x10 | ||
53 | #define ULP2_FLAG_DCRC_ERROR 0x20 | ||
54 | #define ULP2_FLAG_PAD_ERROR 0x40 | ||
55 | |||
56 | void cxgb3i_conn_closing(struct s3_conn *); | ||
57 | void cxgb3i_conn_pdu_ready(struct s3_conn *c3cn); | ||
58 | void cxgb3i_conn_tx_open(struct s3_conn *c3cn); | ||
59 | #endif | ||