Commit | Line | Data |
---|---|---|
be086e7c MY |
1 | /* |
2 | * QLogic iSCSI Offload Driver | |
3 | * Copyright (c) 2016 Cavium Inc. | |
4 | * | |
5 | * This software is available under the terms of the GNU General Public License | |
6 | * (GPL) Version 2, available from the file COPYING in the main directory of | |
7 | * this source tree. | |
8 | */ | |
9 | ||
10 | #ifndef _QEDI_FW_ISCSI_H_ | |
11 | #define _QEDI_FW_ISCSI_H_ | |
12 | ||
13 | #include "qedi_fw_scsi.h" | |
14 | ||
15 | struct iscsi_task_params { | |
21dd79e8 | 16 | struct e4_iscsi_task_context *context; |
be086e7c MY |
17 | struct iscsi_wqe *sqe; |
18 | u32 tx_io_size; | |
19 | u32 rx_io_size; | |
20 | u16 conn_icid; | |
21 | u16 itid; | |
22 | u8 cq_rss_number; | |
23 | }; | |
24 | ||
25 | struct iscsi_conn_params { | |
26 | u32 first_burst_length; | |
27 | u32 max_send_pdu_length; | |
28 | u32 max_burst_length; | |
29 | bool initial_r2t; | |
30 | bool immediate_data; | |
31 | }; | |
32 | ||
33 | /* @brief init_initiator_read_iscsi_task - initializes iSCSI Initiator Read | |
34 | * task context. | |
35 | * | |
36 | * @param task_params - Pointer to task parameters struct | |
37 | * @param conn_params - Connection Parameters | |
38 | * @param cmd_params - command specific parameters | |
39 | * @param cmd_pdu_header - PDU Header Parameters | |
40 | * @param sgl_task_params - Pointer to SGL task params | |
41 | * @param dif_task_params - Pointer to DIF parameters struct | |
42 | */ | |
43 | int init_initiator_rw_iscsi_task(struct iscsi_task_params *task_params, | |
44 | struct iscsi_conn_params *conn_params, | |
45 | struct scsi_initiator_cmd_params *cmd_params, | |
46 | struct iscsi_cmd_hdr *cmd_pdu_header, | |
47 | struct scsi_sgl_task_params *tx_sgl_params, | |
48 | struct scsi_sgl_task_params *rx_sgl_params, | |
49 | struct scsi_dif_task_params *dif_task_params); | |
50 | ||
51 | /* @brief init_initiator_login_request_task - initializes iSCSI Initiator Login | |
52 | * Request task context. | |
53 | * | |
54 | * @param task_params - Pointer to task parameters struct | |
55 | * @param login_req_pdu_header - PDU Header Parameters | |
56 | * @param tx_sgl_task_params - Pointer to SGL task params | |
57 | * @param rx_sgl_task_params - Pointer to SGL task params | |
58 | */ | |
59 | int init_initiator_login_request_task(struct iscsi_task_params *task_params, | |
60 | struct iscsi_login_req_hdr *login_header, | |
61 | struct scsi_sgl_task_params *tx_params, | |
62 | struct scsi_sgl_task_params *rx_params); | |
63 | ||
64 | /* @brief init_initiator_nop_out_task - initializes iSCSI Initiator NOP Out | |
65 | * task context. | |
66 | * | |
67 | * @param task_params - Pointer to task parameters struct | |
68 | * @param nop_out_pdu_header - PDU Header Parameters | |
69 | * @param tx_sgl_task_params - Pointer to SGL task params | |
70 | * @param rx_sgl_task_params - Pointer to SGL task params | |
71 | */ | |
72 | int init_initiator_nop_out_task(struct iscsi_task_params *task_params, | |
73 | struct iscsi_nop_out_hdr *nop_out_pdu_header, | |
74 | struct scsi_sgl_task_params *tx_sgl_params, | |
75 | struct scsi_sgl_task_params *rx_sgl_params); | |
76 | ||
77 | /* @brief init_initiator_logout_request_task - initializes iSCSI Initiator | |
78 | * Logout Request task context. | |
79 | * | |
80 | * @param task_params - Pointer to task parameters struct | |
81 | * @param logout_pdu_header - PDU Header Parameters | |
82 | * @param tx_sgl_task_params - Pointer to SGL task params | |
83 | * @param rx_sgl_task_params - Pointer to SGL task params | |
84 | */ | |
85 | int init_initiator_logout_request_task(struct iscsi_task_params *task_params, | |
86 | struct iscsi_logout_req_hdr *logout_hdr, | |
87 | struct scsi_sgl_task_params *tx_params, | |
88 | struct scsi_sgl_task_params *rx_params); | |
89 | ||
90 | /* @brief init_initiator_tmf_request_task - initializes iSCSI Initiator TMF | |
91 | * task context. | |
92 | * | |
93 | * @param task_params - Pointer to task parameters struct | |
94 | * @param tmf_pdu_header - PDU Header Parameters | |
95 | */ | |
96 | int init_initiator_tmf_request_task(struct iscsi_task_params *task_params, | |
97 | struct iscsi_tmf_request_hdr *tmf_header); | |
98 | ||
99 | /* @brief init_initiator_text_request_task - initializes iSCSI Initiator Text | |
100 | * Request task context. | |
101 | * | |
102 | * @param task_params - Pointer to task parameters struct | |
103 | * @param text_request_pdu_header - PDU Header Parameters | |
104 | * @param tx_sgl_task_params - Pointer to Tx SGL task params | |
105 | * @param rx_sgl_task_params - Pointer to Rx SGL task params | |
106 | */ | |
107 | int init_initiator_text_request_task(struct iscsi_task_params *task_params, | |
108 | struct iscsi_text_request_hdr *text_header, | |
109 | struct scsi_sgl_task_params *tx_params, | |
110 | struct scsi_sgl_task_params *rx_params); | |
111 | ||
112 | /* @brief init_cleanup_task - initializes Clean task (SQE) | |
113 | * | |
114 | * @param task_params - Pointer to task parameters struct | |
115 | */ | |
116 | int init_cleanup_task(struct iscsi_task_params *task_params); | |
117 | #endif |