/* * cxgb3i_ulp2.h: Chelsio S3xx iSCSI driver. * * Copyright (c) 2008 Chelsio Communications, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * Written by: Karen Xie (kxie@chelsio.com) */ #ifndef __CXGB3I_ULP2_PDU_H__ #define __CXGB3I_ULP2_PDU_H__ struct cpl_iscsi_hdr_norss { union opcode_tid ot; u16 pdu_len_ddp; u16 len; u32 seq; u16 urg; u8 rsvd; u8 status; }; struct cpl_rx_data_ddp_norss { union opcode_tid ot; u16 urg; u16 len; u32 seq; u32 nxt_seq; u32 ulp_crc; u32 ddp_status; }; #define RX_DDP_STATUS_IPP_SHIFT 27 /* invalid pagepod */ #define RX_DDP_STATUS_TID_SHIFT 26 /* tid mismatch */ #define RX_DDP_STATUS_COLOR_SHIFT 25 /* color mismatch */ #define RX_DDP_STATUS_OFFSET_SHIFT 24 /* offset mismatch */ #define RX_DDP_STATUS_ULIMIT_SHIFT 23 /* ulimit error */ #define RX_DDP_STATUS_TAG_SHIFT 22 /* tag mismatch */ #define RX_DDP_STATUS_DCRC_SHIFT 21 /* dcrc error */ #define RX_DDP_STATUS_HCRC_SHIFT 20 /* hcrc error */ #define RX_DDP_STATUS_PAD_SHIFT 19 /* pad error */ #define RX_DDP_STATUS_PPP_SHIFT 18 /* pagepod parity error */ #define RX_DDP_STATUS_LLIMIT_SHIFT 17 /* llimit error */ #define RX_DDP_STATUS_DDP_SHIFT 16 /* ddp'able */ #define RX_DDP_STATUS_PMM_SHIFT 15 /* pagepod mismatch */ #define ULP2_FLAG_DATA_READY 0x1 #define ULP2_FLAG_DATA_DDPED 0x2 #define ULP2_FLAG_HCRC_ERROR 0x10 #define ULP2_FLAG_DCRC_ERROR 0x20 #define ULP2_FLAG_PAD_ERROR 0x40 void cxgb3i_conn_closing(struct s3_conn *c3cn); void cxgb3i_conn_pdu_ready(struct s3_conn *c3cn); void cxgb3i_conn_tx_open(struct s3_conn *c3cn); #endif