• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 *c3cn);
57 void cxgb3i_conn_pdu_ready(struct s3_conn *c3cn);
58 void cxgb3i_conn_tx_open(struct s3_conn *c3cn);
59 #endif
60