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