1*d14abf15SRobert Mustacchi #ifndef __EVEREST_ISCSI_CONSTANTS_H_ 2*d14abf15SRobert Mustacchi #define __EVEREST_ISCSI_CONSTANTS_H_ 3*d14abf15SRobert Mustacchi 4*d14abf15SRobert Mustacchi /** 5*d14abf15SRobert Mustacchi * This file defines HSI constants for the iSCSI flows 6*d14abf15SRobert Mustacchi */ 7*d14abf15SRobert Mustacchi 8*d14abf15SRobert Mustacchi /* Everest general configuartion */ 9*d14abf15SRobert Mustacchi #define ISCSI_NUM_OF_CQS (8) /*MAX num of CQs*/ 10*d14abf15SRobert Mustacchi #define ISCSI_NUM_OF_EQS (ISCSI_NUM_OF_CQS*MAX_NUM_OF_PF) /*per port*/ 11*d14abf15SRobert Mustacchi #define ISCSI_NUM_OF_CONNECTIONS (128) 12*d14abf15SRobert Mustacchi #define ISCSI_NUM_OF_CONNECTIONS_BOTH_PORTS (ISCSI_NUM_OF_CONNECTIONS*MAX_NUM_OF_PF) 13*d14abf15SRobert Mustacchi #define ISCSI_MAX_NUM_OF_PENDING_R2TS (4) 14*d14abf15SRobert Mustacchi #define ISCSI_R2TQE_SIZE (8) 15*d14abf15SRobert Mustacchi #define ISCSI_NUM_OF_CQ_TIMERS_PER_FUNC (ISCSI_NUM_OF_CONNECTIONS*ISCSI_NUM_OF_CQS) 16*d14abf15SRobert Mustacchi #define ISCSI_NUM_OF_CQ_TIMERS (ISCSI_NUM_OF_CONNECTIONS*ISCSI_NUM_OF_CQS*MAX_NUM_OF_PF) 17*d14abf15SRobert Mustacchi #define ISCSI_RQE_SIZE (256) 18*d14abf15SRobert Mustacchi #define ISCSI_CQE_SIZE (64) /* must be equal to sizeof(iscsi_response_t), which is verified using a static assert */ 19*d14abf15SRobert Mustacchi #define ISCSI_GLOBAL_BUF_SIZE (64) 20*d14abf15SRobert Mustacchi 21*d14abf15SRobert Mustacchi /* Slow path commands */ 22*d14abf15SRobert Mustacchi #define ISCSI_RAMROD_CMD_ID_UPDATE_CONN (ISCSI_KCQE_OPCODE_UPDATE_CONN) 23*d14abf15SRobert Mustacchi #define ISCSI_RAMROD_CMD_ID_INIT (ISCSI_KCQE_OPCODE_INIT) 24*d14abf15SRobert Mustacchi // for internal FW processing 25*d14abf15SRobert Mustacchi #define ISCSI_CMD_ID_INIT_FW_CLEAN_TASK (ISCSI_KCQE_OPCODE_FW_CLEAN_TASK) 26*d14abf15SRobert Mustacchi 27*d14abf15SRobert Mustacchi /* iSCSI states */ 28*d14abf15SRobert Mustacchi #define ISCSI_STATE_SHIFT (3) 29*d14abf15SRobert Mustacchi #define ISCSI_STATES_MASK (3) 30*d14abf15SRobert Mustacchi #define ISCSI_INIT_STATE (0 << ISCSI_STATE_SHIFT) 31*d14abf15SRobert Mustacchi #define ISCSI_OFFLOAD_STATE (1 << ISCSI_STATE_SHIFT) 32*d14abf15SRobert Mustacchi #define ISCSI_ERROR_STATE (2 << ISCSI_STATE_SHIFT) 33*d14abf15SRobert Mustacchi #define ISCSI_TERMINATION_STATE (3 << ISCSI_STATE_SHIFT) 34*d14abf15SRobert Mustacchi 35*d14abf15SRobert Mustacchi /* number of elements in the EQ that are reserved for slow path completions, catastrophic error 36*d14abf15SRobert Mustacchi in case the EQ is (almost) full, and an end of page element */ 37*d14abf15SRobert Mustacchi #define RESERVED_ISCSI_EQ_ELEMENTS (MAX_RAMRODS_PER_PORT + 2) 38*d14abf15SRobert Mustacchi 39*d14abf15SRobert Mustacchi /* EQE Source types */ 40*d14abf15SRobert Mustacchi #define ISCSI_SOURCE_TYPE_NIC (0) 41*d14abf15SRobert Mustacchi #define ISCSI_SOURCE_TYPE_CID (1) 42*d14abf15SRobert Mustacchi 43*d14abf15SRobert Mustacchi /* EQE Layer */ 44*d14abf15SRobert Mustacchi #define ISCSI_EVENT_LAYER_ULP (0) 45*d14abf15SRobert Mustacchi #define ISCSI_EVENT_LAYER_LLP (1) 46*d14abf15SRobert Mustacchi 47*d14abf15SRobert Mustacchi /* EQE Completion Types */ 48*d14abf15SRobert Mustacchi #define ISCSI_EVENT_TYPE_FAST_PATH (0) 49*d14abf15SRobert Mustacchi #define ISCSI_EVENT_TYPE_SLOW_PATH (1) 50*d14abf15SRobert Mustacchi 51*d14abf15SRobert Mustacchi /* the task context Pbl cache entry Index that marks PBL not cached */ 52*d14abf15SRobert Mustacchi #define ISCSI_PBL_NOT_CACHED (0xff) 53*d14abf15SRobert Mustacchi #define ISCSI_PDU_HEADER_NOT_CACHED (0xff) 54*d14abf15SRobert Mustacchi 55*d14abf15SRobert Mustacchi 56*d14abf15SRobert Mustacchi // OOO constants 57*d14abf15SRobert Mustacchi #define ISCSI_L2_OOO_RX_BDS_THRSHLD_DEFAULT (5) // threshold for number of available RX BDs 58*d14abf15SRobert Mustacchi 59*d14abf15SRobert Mustacchi #endif //__EVEREST_ISCSI_CONSTANTS_H_ 60