![Karen Xie](/assets/img/avatar_default.png)
Need to make sure the outgoing pdu can fit into a single skb. When calulating the max. outgoing pdu payload size, take into consideration of - data can be held in the skb's fragment list, assume 512 bytes per fragment, and - data can be held in the headroom. Signed-off-by: Karen Xie <kxie@chelsio.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
60 lines
1.7 KiB
C
60 lines
1.7 KiB
C
/*
|
|
* 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
|