linux/include/linux/qed/iscsi_common.h

/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */
/* QLogic qed NIC Driver
 * Copyright (c) 2015-2017  QLogic Corporation
 * Copyright (c) 2019-2020 Marvell International Ltd.
 */

#ifndef __ISCSI_COMMON__
#define __ISCSI_COMMON__

/**********************/
/* ISCSI FW CONSTANTS */
/**********************/

/* iSCSI HSI constants */
#define ISCSI_DEFAULT_MTU

/* KWQ (kernel work queue) layer codes */
#define ISCSI_SLOW_PATH_LAYER_CODE

/* iSCSI parameter defaults */
#define ISCSI_DEFAULT_HEADER_DIGEST
#define ISCSI_DEFAULT_DATA_DIGEST
#define ISCSI_DEFAULT_INITIAL_R2T
#define ISCSI_DEFAULT_IMMEDIATE_DATA
#define ISCSI_DEFAULT_MAX_PDU_LENGTH
#define ISCSI_DEFAULT_FIRST_BURST_LENGTH
#define ISCSI_DEFAULT_MAX_BURST_LENGTH
#define ISCSI_DEFAULT_MAX_OUTSTANDING_R2T

/* iSCSI parameter limits */
#define ISCSI_MIN_VAL_MAX_PDU_LENGTH
#define ISCSI_MAX_VAL_MAX_PDU_LENGTH
#define ISCSI_MIN_VAL_BURST_LENGTH
#define ISCSI_MAX_VAL_BURST_LENGTH
#define ISCSI_MIN_VAL_MAX_OUTSTANDING_R2T
#define ISCSI_MAX_VAL_MAX_OUTSTANDING_R2T

#define ISCSI_AHS_CNTL_SIZE

#define ISCSI_WQE_NUM_SGES_SLOWIO

/* iSCSI reserved params */
#define ISCSI_ITT_ALL_ONES
#define ISCSI_TTT_ALL_ONES

#define ISCSI_OPTION_1_OFF_CHIP_TCP
#define ISCSI_OPTION_2_ON_CHIP_TCP

#define ISCSI_INITIATOR_MODE
#define ISCSI_TARGET_MODE

/* iSCSI request op codes */
#define ISCSI_OPCODE_NOP_OUT
#define ISCSI_OPCODE_SCSI_CMD
#define ISCSI_OPCODE_TMF_REQUEST
#define ISCSI_OPCODE_LOGIN_REQUEST
#define ISCSI_OPCODE_TEXT_REQUEST
#define ISCSI_OPCODE_DATA_OUT
#define ISCSI_OPCODE_LOGOUT_REQUEST

/* iSCSI response/messages op codes */
#define ISCSI_OPCODE_NOP_IN
#define ISCSI_OPCODE_SCSI_RESPONSE
#define ISCSI_OPCODE_TMF_RESPONSE
#define ISCSI_OPCODE_LOGIN_RESPONSE
#define ISCSI_OPCODE_TEXT_RESPONSE
#define ISCSI_OPCODE_DATA_IN
#define ISCSI_OPCODE_LOGOUT_RESPONSE
#define ISCSI_OPCODE_R2T
#define ISCSI_OPCODE_ASYNC_MSG
#define ISCSI_OPCODE_REJECT

/* iSCSI stages */
#define ISCSI_STAGE_SECURITY_NEGOTIATION
#define ISCSI_STAGE_LOGIN_OPERATIONAL_NEGOTIATION
#define ISCSI_STAGE_FULL_FEATURE_PHASE

/* iSCSI CQE errors */
#define CQE_ERROR_BITMAP_DATA_DIGEST
#define CQE_ERROR_BITMAP_RCV_ON_INVALID_CONN
#define CQE_ERROR_BITMAP_DATA_TRUNCATED

/* Union of data bd_opaque/ tq_tid */
bd_opaque_tq_union;

/* ISCSI SGL entry */
struct cqe_error_bitmap {};

cqe_error_status;

/* iSCSI Login Response PDU header */
struct data_hdr {};

struct lun_mapper_addr_reserved {};

/* rdif conetxt for dif on immediate */
struct dif_on_immediate_params {};

/* iSCSI dif on immediate mode attributes union */
dif_configuration_params;

/* Union of data/r2t sequence number */
iscsi_seq_num;

/* iSCSI DIF flags */
struct iscsi_dif_flags {};

/* The iscsi storm task context of Ystorm */
struct ystorm_iscsi_task_state {};

/* The iscsi storm task context of Ystorm */
struct ystorm_iscsi_task_rxmit_opt {};

/* iSCSI Common PDU header */
struct iscsi_common_hdr {};

/* iSCSI Command PDU header */
struct iscsi_cmd_hdr {};

/* iSCSI Command PDU header with Extended CDB (Initiator Mode) */
struct iscsi_ext_cdb_cmd_hdr {};

/* iSCSI login request PDU header */
struct iscsi_login_req_hdr {};

/* iSCSI logout request PDU header */
struct iscsi_logout_req_hdr {};

/* iSCSI Data-out PDU header */
struct iscsi_data_out_hdr {};

/* iSCSI Data-in PDU header */
struct iscsi_data_in_hdr {};

/* iSCSI R2T PDU header */
struct iscsi_r2t_hdr {};

/* iSCSI NOP-out PDU header */
struct iscsi_nop_out_hdr {};

/* iSCSI NOP-in PDU header */
struct iscsi_nop_in_hdr {};

/* iSCSI Login Response PDU header */
struct iscsi_login_response_hdr {};

/* iSCSI Logout Response PDU header */
struct iscsi_logout_response_hdr {};

/* iSCSI Text Request PDU header */
struct iscsi_text_request_hdr {};

/* iSCSI Text Response PDU header */
struct iscsi_text_response_hdr {};

/* iSCSI TMF Request PDU header */
struct iscsi_tmf_request_hdr {};

struct iscsi_tmf_response_hdr {};

/* iSCSI Response PDU header */
struct iscsi_response_hdr {};

/* iSCSI Reject PDU header */
struct iscsi_reject_hdr {};

/* iSCSI Asynchronous Message PDU header */
struct iscsi_async_msg_hdr {};

/* PDU header part of Ystorm task context */
iscsi_task_hdr;

/* The iscsi storm task context of Ystorm */
struct ystorm_iscsi_task_st_ctx {};

struct ystorm_iscsi_task_ag_ctx {};

struct mstorm_iscsi_task_ag_ctx {};

struct ustorm_iscsi_task_ag_ctx {};

/* The iscsi storm task context of Mstorm */
struct mstorm_iscsi_task_st_ctx {};

struct iscsi_reg1 {};

struct tqe_opaque {};

/* The iscsi storm task context of Ustorm */
struct ustorm_iscsi_task_st_ctx {};

/* iscsi task context */
struct iscsi_task_context {};

/* iSCSI connection offload params passed by driver to FW in ISCSI offload
 * ramrod.
 */
struct iscsi_conn_offload_params {};

/* iSCSI connection statistics */
struct iscsi_conn_stats_params {};


/* iSCSI connection update params passed by driver to FW in ISCSI update
 *ramrod.
 */
struct iscsi_conn_update_ramrod_params {};

/* iSCSI CQ element */
struct iscsi_cqe_common {};

/* iSCSI CQ element */
struct iscsi_cqe_solicited {};

/* iSCSI CQ element */
struct iscsi_cqe_unsolicited {};

/* iSCSI CQ element */
iscsi_cqe;

/* iSCSI CQE type */
enum iscsi_cqes_type {};

/* iSCSI CQE type */
enum iscsi_cqe_unsolicited_type {};

/* iscsi debug modes */
struct iscsi_debug_modes {};

/* iSCSI kernel completion queue IDs */
enum iscsi_eqe_opcode {};

/* iSCSI EQE and CQE completion status */
enum iscsi_error_types {};

/* iSCSI Ramrod Command IDs */
enum iscsi_ramrod_cmd_id {};

/* iSCSI connection termination request */
struct iscsi_spe_conn_mac_update {};

/* iSCSI and TCP connection (Option 1) offload params passed by driver to FW in
 * iSCSI offload ramrod.
 */
struct iscsi_spe_conn_offload {};

/* iSCSI and TCP connection(Option 2) offload params passed by driver to FW in
 * iSCSI offload ramrod.
 */
struct iscsi_spe_conn_offload_option2 {};

/* iSCSI collect connection statistics request */
struct iscsi_spe_conn_statistics {};

/* iSCSI connection termination request */
struct iscsi_spe_conn_termination {};

/* iSCSI firmware function init parameters */
struct iscsi_spe_func_init {};

/* iSCSI task type */
enum iscsi_task_type {};

/* iSCSI DesiredDataTransferLength/ttt union */
iscsi_ttt_txlen_union;

/* iSCSI uHQ element */
struct iscsi_uhqe {};

/* iSCSI WQ element */
struct iscsi_wqe {};

/* iSCSI wqe type */
enum iscsi_wqe_type {};

/* iSCSI xHQ element */
struct iscsi_xhqe {};

/* Per PF iSCSI receive path statistics - mStorm RAM structure */
struct mstorm_iscsi_stats_drv {};

/* Per PF iSCSI transmit path statistics - pStorm RAM structure */
struct pstorm_iscsi_stats_drv {};

/* Per PF iSCSI receive path statistics - tStorm RAM structure */
struct tstorm_iscsi_stats_drv {};

/* Per PF iSCSI receive path statistics - uStorm RAM structure */
struct ustorm_iscsi_stats_drv {};

/* Per PF iSCSI transmit path statistics - xStorm RAM structure */
struct xstorm_iscsi_stats_drv {};

/* Per PF iSCSI transmit path statistics - yStorm RAM structure */
struct ystorm_iscsi_stats_drv {};

struct tstorm_iscsi_task_ag_ctx {};

/* iSCSI doorbell data */
struct iscsi_db_data {};

#endif /* __ISCSI_COMMON__ */