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