diff options
author | Varun Prakash <varun@chelsio.com> | 2017-01-13 20:53:25 +0530 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2017-02-18 21:24:21 -0800 |
commit | 79e57cfe00f40d509e2d007a5662db26cdbc74db (patch) | |
tree | b025ff0ba094a6a9c6a40ef0811237f9dcfbbbb4 /drivers/target/iscsi/cxgbit/cxgbit_lro.h | |
parent | target/cxgbit: Enable DDP for T6 only if data sequence and pdu are in order (diff) | |
download | linux-dev-79e57cfe00f40d509e2d007a5662db26cdbc74db.tar.xz linux-dev-79e57cfe00f40d509e2d007a5662db26cdbc74db.zip |
target/cxgbit: add T6 iSCSI DDP completion feature
Chelsio T6 adapters reduce number of completion
to host by generating single completion for all
directly placed(DDP) iSCSI pdus in a sequence,
completion contains iSCSI hdr of the last pdu
in a sequence.
On receiving DDP completion cxgbit driver finds
iSCSI cmd using iscsit_find_cmd_from_itt_or_dump(),
then updates cmd->write_data_done, cmd->next_burst_len,
cmd->data_sn and calls __iscsit_check_dataout_hdr()
to validate iSCSI hdr.
(Update __iscsit_check_dataout_hdr parameter usage - nab)
Signed-off-by: Varun Prakash <varun@chelsio.com>
Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/iscsi/cxgbit/cxgbit_lro.h')
-rw-r--r-- | drivers/target/iscsi/cxgbit/cxgbit_lro.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/target/iscsi/cxgbit/cxgbit_lro.h b/drivers/target/iscsi/cxgbit/cxgbit_lro.h index 28c11bd1b930..dcaed3a1d23f 100644 --- a/drivers/target/iscsi/cxgbit/cxgbit_lro.h +++ b/drivers/target/iscsi/cxgbit/cxgbit_lro.h @@ -31,8 +31,9 @@ enum cxgbit_pducb_flags { PDUCBF_RX_DATA = (1 << 1), /* received pdu payload */ PDUCBF_RX_STATUS = (1 << 2), /* received ddp status */ PDUCBF_RX_DATA_DDPD = (1 << 3), /* pdu payload ddp'd */ - PDUCBF_RX_HCRC_ERR = (1 << 4), /* header digest error */ - PDUCBF_RX_DCRC_ERR = (1 << 5), /* data digest error */ + PDUCBF_RX_DDP_CMP = (1 << 4), /* ddp completion */ + PDUCBF_RX_HCRC_ERR = (1 << 5), /* header digest error */ + PDUCBF_RX_DCRC_ERR = (1 << 6), /* data digest error */ }; struct cxgbit_lro_pdu_cb { |