]> err.no Git - linux-2.6/blobdiff - drivers/scsi/iscsi_tcp.h
Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/sam/kbuild
[linux-2.6] / drivers / scsi / iscsi_tcp.h
index 7e40e94d9fdc48f3d59d959e5d7b208bdcb282ed..7eba44df0a7f204059eae6f2be95dfe732c91954 100644 (file)
 #define IN_PROGRESS_HEADER_GATHER      0x1
 #define IN_PROGRESS_DATA_RECV          0x2
 #define IN_PROGRESS_DDIGEST_RECV       0x3
+#define IN_PROGRESS_PAD_RECV           0x4
 
 /* xmit state machine */
 #define XMSTATE_IDLE                   0x0
-#define XMSTATE_R_HDR                  0x1
-#define XMSTATE_W_HDR                  0x2
+#define XMSTATE_CMD_HDR_INIT           0x1
+#define XMSTATE_CMD_HDR_XMIT           0x2
 #define XMSTATE_IMM_HDR                        0x4
 #define XMSTATE_IMM_DATA               0x8
 #define XMSTATE_UNS_INIT               0x10
 #define XMSTATE_W_PAD                  0x200
 #define XMSTATE_W_RESEND_PAD           0x400
 #define XMSTATE_W_RESEND_DATA_DIGEST   0x800
+#define XMSTATE_IMM_HDR_INIT           0x1000
+#define XMSTATE_SOL_HDR_INIT           0x2000
 
 #define ISCSI_PAD_LEN                  4
 #define ISCSI_SG_TABLESIZE             SG_ALL
 #define ISCSI_TCP_MAX_CMD_LEN          16
 
+struct crypto_hash;
 struct socket;
 
 /* Socket connection recieve helper */
@@ -82,9 +86,6 @@ struct iscsi_tcp_conn {
        /* iSCSI connection-wide sequencing */
        int                     hdr_size;       /* PDU header size */
 
-       struct crypto_tfm       *rx_tfm;        /* CRC32C (Rx) */
-       struct crypto_tfm       *data_rx_tfm;   /* CRC32C (Rx) for data */
-
        /* control data */
        struct iscsi_tcp_recv   in;             /* TCP receive context */
        int                     in_progress;    /* connection state machine */
@@ -94,9 +95,9 @@ struct iscsi_tcp_conn {
        void                    (*old_state_change)(struct sock *);
        void                    (*old_write_space)(struct sock *);
 
-       /* xmit */
-       struct crypto_tfm       *tx_tfm;        /* CRC32C (Tx) */
-       struct crypto_tfm       *data_tx_tfm;   /* CRC32C (Tx) for data */
+       /* data and header digests */
+       struct hash_desc        tx_hash;        /* CRC32C (Tx) */
+       struct hash_desc        rx_hash;        /* CRC32C (Rx) */
 
        /* MIB custom statistics */
        uint32_t                sendpage_failures_cnt;
@@ -154,7 +155,7 @@ struct iscsi_tcp_cmd_task {
        struct scatterlist      *sg;                    /* per-cmd SG list  */
        struct scatterlist      *bad_sg;                /* assert statement */
        int                     sg_count;               /* SG's to process  */
-       uint32_t                exp_r2tsn;
+       uint32_t                exp_datasn;             /* expected target's R2TSN/DataSN */
        int                     data_offset;
        struct iscsi_r2t_info   *r2t;                   /* in progress R2T    */
        struct iscsi_queue      r2tpool;