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