qedi_fw_iscsi.h 4.1 KB

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