1*d14abf15SRobert Mustacchi #ifndef __57XX_ISCSI_CONSTANTS_H_ 2*d14abf15SRobert Mustacchi #define __57XX_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 /* current iSCSI HSI version number (8 bit) */ 9*d14abf15SRobert Mustacchi #define ISCSI_HSI_VERSION (2) 10*d14abf15SRobert Mustacchi 11*d14abf15SRobert Mustacchi /* iSCSI request op codes */ 12*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_CLEANUP_REQUEST (7) 13*d14abf15SRobert Mustacchi 14*d14abf15SRobert Mustacchi /* iSCSI response/messages op codes */ 15*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_NOPOUT_LOCAL_COMPLETION (0) 16*d14abf15SRobert Mustacchi #define ISCSI_OPCODE_CLEANUP_RESPONSE (0x27) 17*d14abf15SRobert Mustacchi 18*d14abf15SRobert Mustacchi /* iSCSI task types */ 19*d14abf15SRobert Mustacchi #define ISCSI_TASK_TYPE_READ (0) 20*d14abf15SRobert Mustacchi #define ISCSI_TASK_TYPE_WRITE (1) 21*d14abf15SRobert Mustacchi #define ISCSI_TASK_TYPE_MPATH (2) 22*d14abf15SRobert Mustacchi 23*d14abf15SRobert Mustacchi /* initial CQ sequence numbers */ 24*d14abf15SRobert Mustacchi #define ISCSI_INITIAL_SN (1) 25*d14abf15SRobert Mustacchi 26*d14abf15SRobert Mustacchi /*Sqn_to_notify special values */ 27*d14abf15SRobert Mustacchi #define ISCSI_SQN_TO_NOTIFY_NOT_VALID (0xFFFF) 28*d14abf15SRobert Mustacchi #define ISCSI_SQN_TO_NOTIFY_EVENT_COALESCING_DISABLED (0x0) 29*d14abf15SRobert Mustacchi 30*d14abf15SRobert Mustacchi /* KWQ (kernel work queue) layer codes */ 31*d14abf15SRobert Mustacchi #define ISCSI_KWQE_LAYER_CODE (6) 32*d14abf15SRobert Mustacchi 33*d14abf15SRobert Mustacchi /* KWQ (kernel work queue) request op codes */ 34*d14abf15SRobert Mustacchi #define ISCSI_KWQE_OPCODE_OFFLOAD_CONN1 (0) 35*d14abf15SRobert Mustacchi #define ISCSI_KWQE_OPCODE_OFFLOAD_CONN2 (1) 36*d14abf15SRobert Mustacchi #define ISCSI_KWQE_OPCODE_OFFLOAD_CONN3 (6) 37*d14abf15SRobert Mustacchi #define ISCSI_KWQE_OPCODE_UPDATE_CONN (2) 38*d14abf15SRobert Mustacchi #define ISCSI_KWQE_OPCODE_DESTROY_CONN (3) 39*d14abf15SRobert Mustacchi #define ISCSI_KWQE_OPCODE_INIT1 (4) 40*d14abf15SRobert Mustacchi #define ISCSI_KWQE_OPCODE_INIT2 (5) 41*d14abf15SRobert Mustacchi 42*d14abf15SRobert Mustacchi /* KCQ (kernel completion queue) response op codes */ 43*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_OFFLOAD_CONN (0x10) 44*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_UPDATE_CONN (0x12) 45*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_DESTROY_CONN (0x13) 46*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_INIT (0x14) 47*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_FW_CLEAN_TASK (0x15) // for internal FW processing 48*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_TCP_RESET (0x16) 49*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_TCP_SYN (0x17) 50*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_TCP_FIN (0x18) 51*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_TCP_ERROR (0x19) 52*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_CQ_EVENT_NOTIFICATION (0x20) 53*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_ISCSI_ERROR (0x21) 54*d14abf15SRobert Mustacchi #define ISCSI_KCQE_OPCODE_DESTROY_CTX (0x22) 55*d14abf15SRobert Mustacchi 56*d14abf15SRobert Mustacchi /* KCQ (kernel completion queue) completion status */ 57*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_SUCCESS (0x0) 58*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_INVALID_OPCODE (0x1) 59*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_CTX_ALLOC_FAILURE (0x2) 60*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_CTX_FREE_FAILURE (0x3) 61*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_NIC_ERROR (0x4) 62*d14abf15SRobert Mustacchi 63*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_HDR_DIG_ERR (0x5) 64*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_DATA_DIG_ERR (0x6) 65*d14abf15SRobert Mustacchi 66*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_WRONG_HSI_VERSION (0x8) 67*d14abf15SRobert Mustacchi 68*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_UNEXPECTED_OPCODE (0xa) 69*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_OPCODE (0xb) 70*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_AHS_LEN (0xc) 71*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_ITT (0xd) 72*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_STATSN (0xe) 73*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_EXP_DATASN (0xf) 74*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_PEND_R2T (0x10) 75*d14abf15SRobert Mustacchi 76*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_0 (0x11) 77*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_1 (0x12) 78*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_2 (0x13) 79*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_3 (0x14) 80*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_4 (0x15) 81*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_5 (0x16) 82*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_O_U_6 (0x17) 83*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_REMAIN_RCV_LEN (0x18) 84*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_MAX_RCV_PDU_LEN (0x19) 85*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_F_BIT_ZERO (0x1a) 86*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_TTT_NOT_RSRV (0x1b) 87*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATASN (0x1c) 88*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_REMAIN_BURST_LEN (0x1d) 89*d14abf15SRobert Mustacchi 90*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_BUFFER_OFF (0x1f) 91*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_LUN (0x20) 92*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_R2TSN (0x21) 93*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DESIRED_DATA_TRNS_LEN_0 (0x22) 94*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DESIRED_DATA_TRNS_LEN_1 (0x23) 95*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_PEND_R2T_EXCEED (0x24) 96*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_TTT_IS_RSRV (0x25) 97*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_MAX_BURST_LEN (0x26) 98*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATA_SEG_LEN_NOT_ZERO (0x27) 99*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_REJECT_PDU_LEN (0x28) 100*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_ASYNC_PDU_LEN (0x29) 101*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_NOPIN_PDU_LEN (0x2a) 102*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_PEND_R2T_IN_CLEANUP (0x2b) 103*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATA_SEG_LEN_IS_ZERO (0x2c) 104*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_PROTOCOL_ERR_DATA_SEG_LEN_TOO_BIG (0x2d) 105*d14abf15SRobert Mustacchi 106*d14abf15SRobert Mustacchi /* IP/TCP processing errors: */ 107*d14abf15SRobert Mustacchi #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_IP_FRAGMENT (0x40) 108*d14abf15SRobert Mustacchi #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_IP_OPTIONS (0x41) 109*d14abf15SRobert Mustacchi #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_URGENT_FLAG (0x42) 110*d14abf15SRobert Mustacchi #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_MAX_RTRANS (0x43) 111*d14abf15SRobert Mustacchi #define ISCI_KCQE_COMPLETION_STATUS_TCP_ERROR_MAX_OPTIONS_LENGTH (0x44) 112*d14abf15SRobert Mustacchi 113*d14abf15SRobert Mustacchi /* iSCSI licensing errors */ 114*d14abf15SRobert Mustacchi /* general iSCSI license not installed */ 115*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_ISCSI_NOT_SUPPORTED (0x50) 116*d14abf15SRobert Mustacchi /* additional LOM specific iSCSI license not installed */ 117*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_LOM_ISCSI_NOT_ENABLED (0x51) 118*d14abf15SRobert Mustacchi 119*d14abf15SRobert Mustacchi //Driver uses the range beyond this value 120*d14abf15SRobert Mustacchi #define ISCSI_KCQE_COMPLETION_STATUS_LAST_FW_ENTRY (0x7f) 121*d14abf15SRobert Mustacchi 122*d14abf15SRobert Mustacchi /* SQ/RQ/CQ DB structure sizes */ 123*d14abf15SRobert Mustacchi #define ISCSI_SQ_DB_SIZE (16) 124*d14abf15SRobert Mustacchi #define ISCSI_RQ_DB_SIZE (64) 125*d14abf15SRobert Mustacchi #define ISCSI_CQ_DB_SIZE (80) 126*d14abf15SRobert Mustacchi 127*d14abf15SRobert Mustacchi /* Page size codes (for flags field in connection offload request) */ 128*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_256 (0) 129*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_512 (1) 130*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_1K (2) 131*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_2K (3) 132*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_4K (4) 133*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_8K (5) 134*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_16K (6) 135*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_32K (7) 136*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_64K (8) 137*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_128K (9) 138*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_256K (10) 139*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_512K (11) 140*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_1M (12) 141*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_2M (13) 142*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_4M (14) 143*d14abf15SRobert Mustacchi #define ISCSI_PAGE_SIZE_8M (15) 144*d14abf15SRobert Mustacchi 145*d14abf15SRobert Mustacchi /* Iscsi PDU related defines */ 146*d14abf15SRobert Mustacchi #define ISCSI_HEADER_SIZE (48) 147*d14abf15SRobert Mustacchi #define ISCSI_DIGEST_SHIFT (2) 148*d14abf15SRobert Mustacchi #define ISCSI_DIGEST_SIZE (4) 149*d14abf15SRobert Mustacchi 150*d14abf15SRobert Mustacchi /* Everest iSCSI connection type */ 151*d14abf15SRobert Mustacchi #define B577XX_ISCSI_CONNECTION_TYPE (3) 152*d14abf15SRobert Mustacchi 153*d14abf15SRobert Mustacchi #endif /*__57XX_ISCSI_CONSTANTS_H_ */ 154*d14abf15SRobert Mustacchi 155