Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * QLogic iSCSI Offload Driver
0004  * Copyright (c) 2016 Cavium Inc.
0005  */
0006 
0007 #ifndef _QEDI_FW_ISCSI_H_
0008 #define _QEDI_FW_ISCSI_H_
0009 
0010 #include "qedi_fw_scsi.h"
0011 
0012 struct iscsi_task_params {
0013     struct iscsi_task_context *context;
0014     struct iscsi_wqe      *sqe;
0015     u32           tx_io_size;
0016     u32           rx_io_size;
0017     u16           conn_icid;
0018     u16           itid;
0019     u8            cq_rss_number;
0020 };
0021 
0022 struct iscsi_conn_params {
0023     u32 first_burst_length;
0024     u32 max_send_pdu_length;
0025     u32 max_burst_length;
0026     bool    initial_r2t;
0027     bool    immediate_data;
0028 };
0029 
0030 /* @brief init_initiator_read_iscsi_task - initializes iSCSI Initiator Read
0031  * task context.
0032  *
0033  * @param task_params     - Pointer to task parameters struct
0034  * @param conn_params     - Connection Parameters
0035  * @param cmd_params      - command specific parameters
0036  * @param cmd_pdu_header  - PDU Header Parameters
0037  * @param sgl_task_params - Pointer to SGL task params
0038  * @param dif_task_params - Pointer to DIF parameters struct
0039  */
0040 int init_initiator_rw_iscsi_task(struct iscsi_task_params *task_params,
0041                  struct iscsi_conn_params *conn_params,
0042                  struct scsi_initiator_cmd_params *cmd_params,
0043                  struct iscsi_cmd_hdr *cmd_pdu_header,
0044                  struct scsi_sgl_task_params *tx_sgl_params,
0045                  struct scsi_sgl_task_params *rx_sgl_params,
0046                  struct scsi_dif_task_params *dif_task_params);
0047 
0048 /* @brief init_initiator_login_request_task - initializes iSCSI Initiator Login
0049  * Request task context.
0050  *
0051  * @param task_params         - Pointer to task parameters struct
0052  * @param login_req_pdu_header    - PDU Header Parameters
0053  * @param tx_sgl_task_params      - Pointer to SGL task params
0054  * @param rx_sgl_task_params      - Pointer to SGL task params
0055  */
0056 int init_initiator_login_request_task(struct iscsi_task_params *task_params,
0057                       struct iscsi_login_req_hdr *login_header,
0058                       struct scsi_sgl_task_params *tx_params,
0059                       struct scsi_sgl_task_params *rx_params);
0060 
0061 /* @brief init_initiator_nop_out_task - initializes iSCSI Initiator NOP Out
0062  * task context.
0063  *
0064  * @param task_params       - Pointer to task parameters struct
0065  * @param nop_out_pdu_header    - PDU Header Parameters
0066  * @param tx_sgl_task_params    - Pointer to SGL task params
0067  * @param rx_sgl_task_params    - Pointer to SGL task params
0068  */
0069 int init_initiator_nop_out_task(struct iscsi_task_params *task_params,
0070                 struct iscsi_nop_out_hdr *nop_out_pdu_header,
0071                 struct scsi_sgl_task_params *tx_sgl_params,
0072                 struct scsi_sgl_task_params *rx_sgl_params);
0073 
0074 /* @brief init_initiator_logout_request_task - initializes iSCSI Initiator
0075  * Logout Request task context.
0076  *
0077  * @param task_params       - Pointer to task parameters struct
0078  * @param logout_pdu_header  - PDU Header Parameters
0079  * @param tx_sgl_task_params    - Pointer to SGL task params
0080  * @param rx_sgl_task_params    - Pointer to SGL task params
0081  */
0082 int init_initiator_logout_request_task(struct iscsi_task_params *task_params,
0083                        struct iscsi_logout_req_hdr *logout_hdr,
0084                        struct scsi_sgl_task_params *tx_params,
0085                        struct scsi_sgl_task_params *rx_params);
0086 
0087 /* @brief init_initiator_tmf_request_task - initializes iSCSI Initiator TMF
0088  * task context.
0089  *
0090  * @param task_params   - Pointer to task parameters struct
0091  * @param tmf_pdu_header - PDU Header Parameters
0092  */
0093 int init_initiator_tmf_request_task(struct iscsi_task_params *task_params,
0094                     struct iscsi_tmf_request_hdr *tmf_header);
0095 
0096 /* @brief init_initiator_text_request_task - initializes iSCSI Initiator Text
0097  * Request task context.
0098  *
0099  * @param task_params            - Pointer to task parameters struct
0100  * @param text_request_pdu_header    - PDU Header Parameters
0101  * @param tx_sgl_task_params         - Pointer to Tx SGL task params
0102  * @param rx_sgl_task_params         - Pointer to Rx SGL task params
0103  */
0104 int init_initiator_text_request_task(struct iscsi_task_params *task_params,
0105                      struct iscsi_text_request_hdr *text_header,
0106                      struct scsi_sgl_task_params *tx_params,
0107                      struct scsi_sgl_task_params *rx_params);
0108 
0109 /* @brief init_cleanup_task - initializes Clean task (SQE)
0110  *
0111  * @param task_params - Pointer to task parameters struct
0112  */
0113 int init_cleanup_task(struct iscsi_task_params *task_params);
0114 #endif